private 继承的问题
vc6.0编译器:
#include <iostream>
using namespace std;
class A
{
public:
virtual void f(){cout << "A f" << endl;}
};
class B : private A
{
private:
void f() {cout << "B f" << endl;}
};
int main()
{
//B b;
//A & a = b;
A * a = new B;
a->f();
}
这段代码为什么有错误呢?
G:\Program Files\Microsoft Visual Studio\MyProjects\Cpp1.cpp(23) : error C2243: 'type cast' : conversion from 'class B *' to 'class A *' exists, but is inaccessible
#include <iostream>
using namespace std;
class A
{
public:
virtual void f(){cout << "A f" << endl;}
};
class B : private A
{
private:
void f() {cout << "B f" << endl;}
};
int main()
{
//B b;
//A & a = b;
A * a = new B;
a->f();
}
这段代码为什么有错误呢?
G:\Program Files\Microsoft Visual Studio\MyProjects\Cpp1.cpp(23) : error C2243: 'type cast' : conversion from 'class B *' to 'class A *' exists, but is inaccessible
...全文
相关推荐
php类中private属性继承问题分析
这意味着 `private` 属性不能在子类中直接访问或继承。描述中提到的"private属性是不能被继承的",这是正确的。
类继承的一些小问题
### 类继承的一些小问题在面向对象编程语言中,如Java,类的继承是一个非常重要的概念,它允许创建一个新类(子类)来继承现有类(父类)的属性和方法。
C++多重继承引发的重复调用问题与解决方法
C++多重继承引发的重复调用问题与解决方法C++多重继承是一种常见的编程技术,但是在使用多重继承时,可能会出现重复调用问题。
Java编程之继承问题代码示例
* 不能继承private成员变量:private成员变量不能被继承。* 需要使用super关键字:在子类中调用父类的构造方法时,需要使用super关键字。
php使用类继承解决代码重复的问题
在PHP中,类继承是解决代码重复问题的强有力工具。继承允许我们创建子类,子类可以自动拥有父类的所有公共和保护属性和方法,从而在子类中复用这些代码。


