一个类成员访问问题
下面是在百度知道发掘的一个挺有意思的问题。虽然实际中几乎不会这样来用。但是有助于深刻理解类成员的访问。#include <iostream>
using namespace std;
class myclass{
int i;
public:
myclass(int s){i=s;}
myclass(){i=0;}
void xput(int test){i=test;}
void xget(){cout<<"i is "<<i<<"\n";}
void super_put(myclass t){i=t.i;}//直接访问了私有成员,还是用点访问的-_-
};
int main(){
myclass a,b;
int choice;
cout<<"直接访问私有成员变量测试开始……\n";
cout<<"请输入一个整数:";
cin>>choice;
a.xput(choice);
cout<<"a.xget() is ";
a.xget();
cout<<"b.xget() is ";
b.xget();
b.super_put(a);
cout<<"AFTER b.super_put(a)……\n";
cout<<"b.xget() is ";
b.xget();
return 0;
}
注意红色的一行。类对象直接访问了类的私有函数。大家可以讨论一下,这里为什么可以这样来用。