C++ 为什么下面的代码给了我一个关于抽象类的错误?
Car是抽象的,因为它不会覆盖纯虚拟的void Vehicle::Move void Car::Moveint不会覆盖void Vehicle::Move,因为它的参数列表不同。Car是抽象的,因为它不会覆盖纯虚拟void Vehicle::Move void Car::Moveint不会覆盖void Vehicle::Move,因为其参数列表不同。派生类中的Move函数具有不同的签名,它们都采用int 要修复它,还需要在基类中添加一个int参数C++ 为什么下面的代码给了我一个关于抽象类的错误?,c++,abstract-class,C++,Abstract Class,Car是抽象的,因为它不会覆盖纯虚拟的void Vehicle::Move void Car::Moveint不会覆盖void Vehicle::Move,因为它的参数列表不同。Car是抽象的,因为它不会覆盖纯虚拟void Vehicle::Move void Car::Moveint不会覆盖void Vehicle::Move,因为其参数列表不同。派生类中的Move函数具有不同的签名,它们都采用int 要修复它,还需要在基类中添加一个int参数 1>------ Build starte
1>------ Build started: Project: OperatorsTypes, Configuration: Debug Win32 ------
1> main.cpp
1>c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(36): error C2259: 'Car' : cannot instantiate abstract class
1> due to following members:
1> 'void Vehicle::Move(void)' : is abstract
1> c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(9) : see declaration of 'Vehicle::Move'
1>c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(37): error C2259: 'Bus' : cannot instantiate abstract class
1> due to following members:
1> 'void Vehicle::Move(void)' : is abstract
1> c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(9) : see declaration of 'Vehicle::Move'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
派生类中的Move函数具有不同的签名,它们都采用int
要修复它,还需要在基类中添加一个int参数
1>------ Build started: Project: OperatorsTypes, Configuration: Debug Win32 ------
1> main.cpp
1>c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(36): error C2259: 'Car' : cannot instantiate abstract class
1> due to following members:
1> 'void Vehicle::Move(void)' : is abstract
1> c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(9) : see declaration of 'Vehicle::Move'
1>c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(37): error C2259: 'Bus' : cannot instantiate abstract class
1> due to following members:
1> 'void Vehicle::Move(void)' : is abstract
1> c:\users\jorge\documents\visual studio 2010\projects\shapes\operatorstypes\operatorstypes\main.cpp(9) : see declaration of 'Vehicle::Move'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Move在抽象Vehicle类中接受0个参数,在Bus和Car中接受一个int参数,因此它们是不同的函数。将车辆中的原型更改为
Move在抽象Vehicle类中接受0个参数,在Bus和Car中接受一个int参数,因此它们是不同的函数。将车辆中的原型更改为
超级类中缺少参数m。车内
virtual void Move(int) = 0;
在函数重载的C++中,方法和方法不相同。p> 超级类中缺少参数m。车内
virtual void Move(int) = 0;
在函数重载的C++中,方法和方法不相同。p> 如错误所示,Car和Bus是抽象的,因为您没有覆盖void Vehicle::Move。Moveint是一个不同的函数。正如错误所示,Car和Bus是抽象的,因为您没有覆盖void Vehicle::Move。Moveint是一个不同的函数。首先,按照惯例,方法名称应该以小写字母开头。第二,这怎么不是一个无限循环?void Moveint m{Movem;}大写起始变量的约定意味着它是一个类名。首先,按照约定,方法名应该以小写字母开头。第二,这怎么不是一个无限循环?void Moveint m{Movem;}大写起始变量的约定表示它是一个类名。 virtual void Move(int) = 0; // add the int