假设我有一段这样的代码:
// Foo.h:
class Incomplete; // the forward-declaration
class Foo {
void bar(Incomplete&); // doesn't really matter
};// Foo.cpp:
class Incomplete : private Baz {
};
void Foo::bar(Incomplete&) {
}前向声明类是否与Foo.h标准兼容?如果是的话,哪种语言版本?protected继承的情况也是一样的吗?
发布于 2020-02-28 21:14:21
要省略继承,需要类的前向声明。你不能写
class Incomplete : private Baz;即使你想。
转发声明的目的只是表示特定名称空间中的特定名称指的是类。指定基类是定义的一部分,因为它提供了有关类在内存中的布局的信息。
https://stackoverflow.com/questions/60459269
复制相似问题