C++ 默認構造函數無法直接訪問私有成員。私有成員(private members)是類的一部分,它們不能被類的外部直接訪問,包括類的構造函數、析構函數和其他成員函數。但是,類的成員函數(包括構造函數)可以通過其他可訪問的成員函數來間接訪問私有成員。
以下是一個示例,演示了如何在類的構造函數中使用其他成員函數來訪問私有成員:
#include <iostream>
class MyClass {
private:
int private_member;
public:
MyClass(int value) : private_member(value) {
std::cout << "Private member initialized with value: " << private_member << std::endl;
}
void printPrivateMember() const {
std::cout << "Private member value: " << private_member << std::endl;
}
};
int main() {
MyClass obj(10); // 調用構造函數,間接訪問私有成員
obj.printPrivateMember(); // 調用成員函數,間接訪問私有成員
return 0;
}
在這個示例中,構造函數 MyClass(int value)
使用成員初始化列表來初始化私有成員 private_member
。雖然構造函數不能直接訪問私有成員,但它可以通過其他可訪問的成員函數(如 printPrivateMember()
)來間接訪問和操作私有成員。