首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的构造函数有关问题

2012-06-14 
简单的构造函数问题class Test{private:string testpublic:Test(const string &str):test(str){}Test(

简单的构造函数问题
class Test
{
private:
  string test;
public:
  Test(const string &str=""):test(str){}
  Test(const Test &t):test(t.test){}
}

有个疑问,为什么第二个构造函数里,t.test能够成功,test不是私有的吗?

[解决办法]
因为拷贝构造函数是放在本身这个类里的,而类中的函数可以访问这个类的对象的所有成员,当然包括私有成员了。 
String(const String &other) 

m_data=other.x;//x是String类的私有成员 


引用参数对象也是String类的,所以没问题
[解决办法]
.........是私有的啊,所以只能在本类函数里面调用啊
[解决办法]
因为你用的教材太垃圾,竟然没跟你解释这个问题。
[解决办法]
作用域是类的,不是对象的。
[解决办法]
1楼正解
[解决办法]
如果自己都不能用,还要这个属性做什么。
[解决办法]

探讨

作用域是类的,不是对象的。

[解决办法]
这个问题我之前也迷茫过
总理解成通过对象t去访问它的私有变量,然后和类的对象不能访问它的私有变量相矛盾
后面自己不管类的对象不能访问它的私有变量这句话了
因为能不能访问,最终都是通过作用域来看的
在类的里面,函数就能够访问它本身的私有变量
[解决办法]
听陶大妈的.换教材.
[解决办法]
+1
探讨
作用域是类的,不是对象的。

热点排行