weijia 发表于 2015-6-5 22:35:58

友元函数引用了但是编译老说没有定义

#include <iostream>
class Ren;
class Time{
public:Time(int,int,int);
       void oput(Ren &);
private:
        int hour;
        int minute;
    int sec;
};

class Ren{
public:Ren(std::string );
       friend void Time::oput(Ren &);
private:
        std::string name;
};
void Time::oput(Ren &r){
                std::cout<<r.name<<month<<day<<year<<"\n";//为什么老是说month dayyear没有定义呢?????????
}
Time::Time(int h,int m,int s){
hour=h;
minute=m;
sec=s;
}
Ren::Ren(std::string Tname){
name=Tname;}

int main () {
        Time t1(10,13,56);
        Ren r1("weijia");
        t1.oput(r1);
   return 0;

}

ryxcaixia 发表于 2015-6-5 22:35:59

本帖最后由 ryxcaixia 于 2015-6-6 09:34 编辑

友元函数是说可以作为一个非类内成员, 可以访问本身类内的成员函数
但是, 仅仅声明了一个友元函数, 并不代表了就互相为友元函数
并且楼主,month day year这三个变量也没定义过不可能直接使用

回锅丶肉 发表于 2015-6-6 00:13:28

混鱼币
混鱼币
混鱼币
混鱼币
混鱼币
:lol::lol::lol::lol::lol::lol::lol::lol:

仰望天上的光 发表于 2015-6-6 00:30:51

class Time{
public:Time(int,int,int);
         void oput(Ren &);
private:
      int hour;
      int minute;
    int sec;
};
数据成员只有hour,minute,sec没有month dayyear
页: [1]
查看完整版本: 友元函数引用了但是编译老说没有定义