class User { friend class ComputerLab; friend main(); private: char name[7]; };
时间: 2024-01-31 19:04:28 浏览: 76
Computerlab_clinicaltrials_c093017679841ef99cb467c1e0af5789.html
这个类定义中,`User` 类声明了 `ComputerLab` 类和 `main` 函数为友元。这意味着 `ComputerLab` 类和 `main` 函数可以访问 `User` 类的私有成员和保护成员。
但是,需要注意的是,将 `main` 函数声明为友元并不是一个好的实践。`main` 函数应该是程序的入口函数,而不应该直接访问其他类的私有成员和保护成员,这会破坏类的封装性原则,导致代码难以维护和扩展。
如果需要在 `main` 函数中访问 `User` 类的成员,可以通过公有成员函数或友元函数来实现。例如:
```cpp
class User {
public:
void setName(const char* newName);
// 友元函数声明
friend void printUserName(const User& user);
private:
char name[7];
};
// 公有成员函数定义
void User::setName(const char* newName) {
strcpy(name, newName);
}
// 友元函数定义
void printUserName(const User& user) {
cout << "User name: " << user.name << endl;
}
int main() {
User user;
user.setName("Alice");
// 在 main 函数中调用友元函数
printUserName(user);
return 0;
}
```
阅读全文