对于即将到来的决赛,我有一个简短的问题。私有成员数据和函数是否只能由构造函数访问?
回答和详细说明表示赞赏。
这是促使我来找你们的问题和答案:
编辑:
5) 能够确定语句何时是访问私有成员变量或函数的无效尝试。- 这是一个赠品,私有函数和变量只能在构造函数中访问。
所以这是错的吗?
对于即将到来的决赛,我有一个简短的问题。私有成员数据和函数是否只能由构造函数访问?
回答和详细说明表示赞赏。
这是促使我来找你们的问题和答案:
编辑:
5) 能够确定语句何时是访问私有成员变量或函数的无效尝试。- 这是一个赠品,私有函数和变量只能在构造函数中访问。
所以这是错的吗?
是的,这是完全错误的。
根据标准(ISO/IEC 14882:2003 (E), §11.0/1):
一个类的成员可以是
- 私有的;也就是说,它的名称只能被声明它的类的成员和朋友使用。
它说成员,而不是构造函数。
任何类方法都可以访问类的私有成员。需要考虑的一点是静态成员函数,它没有this
指针,只能访问静态成员变量。Friend 函数和 Friend 类也能够访问类的私有成员变量。
您可以从类内部的任何位置访问私有成员,但不能从其他类或其他子类访问。
不,它们可以从对象内的任何地方访问,只是不能从外部访问。
您可以在对象本身内部访问它们,而不仅仅是构造函数。
而且你应该有 get 和 set 方法来从对象外部获取或设置它,以防你想知道如何做到这一点。