【发布时间】:2014-03-27 01:06:47
【问题描述】:
在回复this question 时,我注意到类似以下内容:
class A
{
public:
A();
void foo();
};
class B: public A
{
public:
B();
};
void A::foo()
{
B bar;
//more code
}
直觉上,我想说这是做不到的,但我不确定。不管这样做是不是个好主意,有谁知道这是否违法(以及为什么)?
编辑:我匆匆写了这个例子,我编辑了代码,所以构造函数是公开的。
【问题讨论】:
-
我看不出为什么做不到,它compiles fine。
-
抱歉,链接已修复
-
你不能说“不顾一切”并假装你是认真的。
-
@Kerrek SB 我是认真的,我只是不想让人们写下“不要那样做,这是个坏主意”的问题。我不认为编译器会允许它,我不明白为什么会这样。
标签: c++ polymorphism