2 world pioneer world_pioneer 于 2016.09.20 11:06 提问

类对象可否用成员运算符直接使用变量
c++

中间的代码部分。。其中total_val是在private定义的变量。。stock是定义的一个类。。为什么可以这样图片

3个回答

leewers
leewers   2016.09.22 13:04
已采纳

在函数名前注明了Stock::,这就说明这个函数其实是Stock类的成员函数,成员函数是可以直接访问该类的所有成员变量,包括private变量

leewers
leewers 回复world_pioneer: 准确来说,不能说参数中的Stock对象是另一个对象,而是Stock对象的另一个实例,既然是Stock对象,那么Stock的成员函数就可以直接用成员操作符来访问其私有变量。
大约一年之前 回复
world_pioneer
world_pioneer 成员函数是需要通过某个对象才能使用的吧?直接使用该对象的私有变量当然可行,但它怎么能直接使用另一个对象的私有变量呢?
大约一年之前 回复
lx624909677
lx624909677   Ds   Rxr 2016.09.20 16:24

可以直接使用非private的变量,如果使用了private作用域里的变量,编译时会报错

qq_35644234
qq_35644234   2016.09.22 16:02

首先了它就是一个拷贝构造函数,拷贝构造函数就是一个特殊的函数,它的函数体可以通过成员运算符去访问类的私有和保护的成员,这具体的原因
涉及了c++设计的原理,需要深入到底层去解释,具体的你可以去读读《c++ Primer》作者Lippman的另外一部著作《深度探索C++对象模型》

Csdn user default icon
上传中...
上传图片
插入图片