module 'xgboost' has no attribute 'Dataset'
时间: 2023-10-17 20:06:01 浏览: 246
Public继承生成的子类可访问父类中的所有成员变量, protected继承生成的子类可以访问父类中的保护成员变量和公有成员函数,但不能访问私有成员变量, private继承生成的子类无法访问父类的任何成员变量或函数。
以下是完善后的代码:
// public继承方式
class PublicStudent : public Student {
public:
void show() {
cout << num << endl; // 可以访问num成员变量
cout << name << endl; // 可以访问name成员变量
cout << sex << endl; // 可以访问sex成员变量
}
};
// protected继承方式
class ProtectedStudent : protected Student {
public:
void show() {
cout << num << endl; // 可以访问num成员变量
cout << name << endl; // 可以访问name成员变量
// cout << sex << endl; // 无法访问sex成员变量
}
};
// private继承方式
class PrivateStudent : private Student {
public:
void show() {
cout << num << endl; // 可以访问num成员变量
cout << name << endl; // 可以访问name成员变量
// cout << sex << endl; // 无法访问sex成员变量
}
};
在主函数中,可以分别实例化这三个子类,并调用show函数进行测试。
PublicStudent publicStu;
publicStu.num = 1; // 可以访问num成员变量
publicStu.name = "Tom"; // 可以访问name成员变量
// publicStu.sex = 'M'; // 可以访问sex成员变量
ProtectedStudent protectedStu;
protectedStu.num = 1; // 可以访问num成员变量
protectedStu.name = "Tom"; // 可以访问name成员变量
// protectedStu.sex = 'M'; // 无法访问sex成员变量
PrivateStudent privateStu;
privateStu.num = 1; // 可以访问num成员变量
privateStu.name = "Tom"; // 可以访问name成员变量
// privateStu.sex = 'M'; // 无法访问sex成员变量
以上示例代码仅供参考,具体使用方式根据实际需求进行调整。
阅读全文