class A
{
public:
virtual void
doSomething(void)
{}
void
doStuff(void)
{
doSomething();
}
};
class B : public A
{
public:
void
doSomething(void)
{
// do some stuff here
}
};
B * b = new B;
b->doStuff();
它给了我分段错误。我究竟做错了什么?它应该在我看来很好用!
答案 0 :(得分:5)
在我纠正语法错误并添加了main()函数之后,它为我编译和执行没有任何问题。尝试发布导致问题的REAL代码,并重新考虑代码格式。
答案 1 :(得分:1)
据我所知,你在类定义的代码中没有做任何多态。
b->doStuff()
应该调用B
类的方法。如果你想在B座A-> doSomething
内打电话,你可以使用A:: doSomething
答案 2 :(得分:0)
:
和class A
之后你不应该有public A
...