使用read(),对私有成员进行赋值
时间: 2024-10-04 13:02:15 浏览: 27
在C++中,`read()`通常用于从输入流中读取数据,并不是直接用于对私有成员进行赋值。它是输入流中的一个函数,常用于文件I/O操作中,将读取的数据传递给类的对象。然而,由于封装的原则,私有成员(通常是用`private`关键字声明的)不能直接从外部读取或写入,因此你需要提供一个公共的接口,比如公有方法(public method),来完成这个任务。
例如,假设我们有一个`Person`类,有一个私有成员`age`,我们可以提供一个名为`readAgeFromFile`的公有方法:
```cpp
class Person {
private:
int age;
public:
// 公共方法,允许读取私有成员
void readAgeFromFile(ifstream& file) {
file >> age; // 从文件读取年龄到私有变量
}
// 然后在适当的地方使用该方法
void loadFromFile(const string& filePath) {
ifstream file(filePath);
if (file.is_open()) {
readAgeFromFile(file);
file.close();
} else {
cerr << "Failed to open file" << endl;
}
}
};
```
然后,外部代码就可以通过`loadFromFile`调用`readAgeFromFile`来给`age`赋值了。
阅读全文