作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这段代码有点问题:
#include <iostream>
class A {
public:
void PrintA() {
std::cout << "A";
}
};
class B : public A {
public:
void PrintB() {
std::cout << "B";
}
};
int main() {
A a;
a.PrintA();
B b;
b.PrintA();
b.PrintB();
system("PAUSE");
}
你能告诉我是否存在一种方法可以在 A 类中定义一个对象 B 并使用它的方法,例如:
class A {
public:
void PrintA() {
std::cout << "A";
}
B bclass;
};
并在主函数中使用类似的东西:
int main() {
A a;
a.bclass->PrintB();
system("PAUSE");
}
最佳答案
你需要问自己的问题
编译器如何计算出A
的大小
嗯 - 它需要计算出 B
但是B
里面有一个A
。
你可以永远绕过这个循环
所以你不能这样做。
所以使用指针和前向声明
关于c++ - 继承 C++ 向上转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41652975/
在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型。 向上转型 我们在现实中常常这样说:这个人会唱歌。在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们
当使用使用 C 风格继承的 C API 时,(利用 C 结构的标准布局),例如 GLib ,我们通常使用 C 风格的转换来向下转换: struct base_object { int x;
我是一名优秀的程序员,十分优秀!