C++ 一些基本概念

来源:互联网 发布:淘宝客服聊天技巧大全 编辑:程序博客网 时间:2024/05/13 11:53

1.友元函数

友元函数一般用在类中,但是并不属于成员函数,只是在类中声明,在类外定义。如果在类外定义一个函数的话,当没有在类中声明其为友元函数,就不能调用它访问类中的私有成员变量,若定义了就可以调用类中的私有变量。


class  time
{
public:
    void settime(int,int,int);
    void gettime();
private:
    int hour;
    int minute;
    int  seconds;

};
void time::settime(int h,int m,int s)
{
    hour=h;
    minute=m;
    seconds=s;
}
class  data
{
public:
    friend void display(data &d);
private:
    int day;
    int month;
    int year;

}
void time::gettime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}

void display(data &d)  //与私有成员的定义不同,不需要指出所属的类
{
day=d.day;//可以引用类中的私有 成员啦(友元函数不能直接访问类的成员,只能访问对象成员然后间接得到私有成员)
month=d.month;
year=d.year;
}
int main()
{
time T;
data D;
T.settime(12,30,00);
display(D);//友元函数的调用和成员函数不同,按普通函数方式调用
return 0;

}

2几点总结

成员函数有this指针,友元函数没有

成员函数中,可以直接访问该类的对象 的私有成员(和拷贝函数一样)。一般实例是不能访问访问私有成员的。这样可以

class  time
{
public:
    void settime(int,int,int);
    void gettime();
    void settime(time &t)
    {
    hour=t.hour;
    minute=t.minute;
    second=t.second;
    }

    
private:
    int hour;
    int minute;
    int  seconds;

};

类的成员函数,类的构造函数,友元函数,可以访问作为参数的同类型对象的私有成员。



0 0
原创粉丝点击