访问类私有成员变量

来源:互联网 发布:网络歌手翻唱 编辑:程序博客网 时间:2024/04/30 05:53
    下面列举了“非类成员”访问“类私有成员变量”的3种方法:
    1.通过类公有成员函数set(), get()写、读私有成员;
    2.通过类公有成员函数get()获取私有成员的指针或引用,对指针或引用操作;

    3.通过友元。

    方法1,3都是经常使用的,方法2有点意外(写这篇blog也是因为它);不管怎么说,方法2,3都破坏了类的封装性。

#include <iostream>using namespace std;class Data{public:  Data():data(0){}  void set(int d)  {    data = d;  }  int &get()  {    return data;  }friend void access();private:  int data;};void access(){  Data oD;  oD.data = 3;  cout<<oD.get()<<endl;}int main(){  Data oD;  //1. set(), get()  cout<<oD.get()<<endl;    oD.set(1);  cout<<oD.get()<<endl;    //2. get & or *  int *iD = &(oD.get());   *iD = 2;  cout<<oD.get()<<endl;  //3. friend  access();}


0 0
原创粉丝点击