这编译得很好,虽然我还不想尝试运行它。然而 ...
//class base;
//class derived;
//class derived : public base;
class base {};
class derived : public base {};
class other
{
public:
void func() {base1 = derived1;}
base* base1;
derived* derived1;
};
void main()
{
}
...将其他类移到基类和派生类的定义之上,我必须在 myne 的程序中做类似的事情会导致编译错误。
显而易见的解决方案是在代码顶部转发声明基和派生显示注释掉,但这会导致无法在基*和派生*之间转换错误。尝试转发包含继承信息的声明也不起作用。