这句错在哪(C++)

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:43:42
class A
{
public;
A()
{
func(); //这里错了
virtual void func()=0;

但我不知 func() 错在哪?

func()是基类的纯虚函数,在基类的构造函数中是不能调用这个纯虚函数
如:
#include <iostream>

using namespace std;

class A
{
public:
A(){ }
virtual void print()=0;
};
void A::print()
{
cout<<"hello"<<endl;
}

class B : public A
{
public:
void print(){ A::print();cout<<"world"<<endl; }
};

int main()
{
B b;
b.print();

}
或:
#include <iostream>
using namespace std;

class A
{
public:
A(){ print(); }
virtual void print();
};
void A::print()
{
cout<<"hello"<<endl;
}

class B : public A
{
public:
void print(){ cout<<"world"<<endl; }
};

int main()
{
B b;
b.print();
}

A()
{
func(); //这里错了