【发布时间】:2016-01-08 04:50:59
【问题描述】:
#include <iostream>
using namespace std;
Class ITEM{
private:
int cnt;
public:
ITEM(){}
void func(ITEM a){
a.cnt = 10;
}
};
int main(){
return 0;
}
我认为红线会出错。 因为'a.cnt'值是私有值。 我了解到必须在类内部修改私有值。
【问题讨论】:
-
为什么会出现错误?类成员函数可以访问私有成员。
-
成员函数是类内部的,对吧?
-
出错的不是类,而是程序员。
-
但是,ITEM a 是外部对象。那么函数'func'中不能直接访问a.cnt吗?
-
@user3504418 你可以把自己传回去,(即使它很无意义,)在编译时是不可能区分的。例如
void func(ITEM& a) { a.cnt = 10; } ITEM item; item.func(item);