面试题答案
一键面试- 选项A:不合法。因为
privateVar
是MyClass
类的私有成员,在类外不能直接访问,obj.privateVar = 10;
这种直接访问私有成员的方式违反了C++的访问控制规则。 - 选项B:合法。
MyClass
类提供了公共成员函数setPrivateVar
,通过调用obj.setPrivateVar(10);
可以间接设置私有成员privateVar
的值,这符合C++的访问控制机制,即通过公共接口来访问私有成员。
所以答案是B。
privateVar
是MyClass
类的私有成员,在类外不能直接访问,obj.privateVar = 10;
这种直接访问私有成员的方式违反了C++的访问控制规则。MyClass
类提供了公共成员函数setPrivateVar
,通过调用obj.setPrivateVar(10);
可以间接设置私有成员privateVar
的值,这符合C++的访问控制机制,即通过公共接口来访问私有成员。所以答案是B。