![]() |
1
3
问题是您使用的是私有继承;这意味着继承只能在类内部看到(在本例中,
这与尝试从类外部访问私有成员完全相同。
事实上,“私有继承”这个名字很容易引起误解,因为它不实现真正的继承。在您的示例中,a
|
![]() |
2
2
因为使用了私有继承,派生对象不是基对象。所以当你说:
指向派生的指针无法转换为指向基的指针-两者之间没有实际关系。但是,您可以创建派生对象:
|
![]() |
3
0
私有继承导致基类详细信息在派生类之外不可见。因此,错误C2243:access protection(protected或private)阻止了从指向派生类的指针到指向基类的指针的转换。 你应该使用公共继承。 |
![]() |
4
0
有两种方法可以使其工作:
或:
希望能有所帮助, 埃克萨 |
![]() |
5
0
参见C++标准中的CH.112.3(草案)。必须使用显式强制转换,因为隐式强制转换(base*d=new derived();)中使用的复制构造函数不可访问。 |
![]() |
6
-1
我猜:编译器创建的基类的默认构造函数/复制构造函数是私有的,因为对派生类的私有继承,不能由类型转换使用 |
![]() |
Fernando Chu · 一个变量有多个可能的类?[关闭] 6 月前 |
![]() |
Amaterastis · 基类接受子类和内部子类的模板参数 7 月前 |
![]() |
Rishab Negi · 这个关键字在抽象类中是如何工作的 7 月前 |
![]() |
dEmigOd · 类层次结构中的运算符重载解析 8 月前 |
![]() |
TableTopRug · 如何从Kotlin中的密封类继承? 8 月前 |
![]() |
hasdrubal · 抽象基类函数指针python 11 月前 |
|
Josh · 通过反思访问孩子的财产 1 年前 |