简单的构造函数问题
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楼正解
[解决办法]
如果自己都不能用,还要这个属性做什么。
[解决办法]