我有3节课。我们称它们为 A 类、B 类和 C 类。
C类从B类继承,B类从A类继承。(还有其他类从B类继承)
EG
classC -> classB -> classA
classD -> classB -> classA
classE -> classB -> classA
我想创建一个 C 类对象。
A类有一个变量'name' B类有一个变量'choice'
我希望 C 类对象的构造函数创建具有给定名称的对象。
这就是我完成 .h 文件的方式(这显然不起作用) 这些提取来自相关的 .h 文件。每个类都有一个 .h 文件和一个 .cpp 文件。
class classC: public classB {
public:
classC(string name):classA(name){}
};
class classB : public classA {
public:
classB(string name);
void setChoice();
string getChoice();
protected:
string choice;
};
class classA {
public:
classA();
classA(string name);
string getName();
virtual void setChoice();
protected:
string name;
};
.cpp 文件的摘录如下:
C类**
classC::classC(string name) {}
void classC::setChoice() {
choice = "P";
}
B类**
classB::classB(string name):classA(name){}
string classB::getChoice(){
return choice;
}
void classB::setchoice(string newChoice){
choice = newChoice;
}
* A类*
classA::classA() {}
classA::classA(string aName):name(aName){}
string classA::getName() {
return name;
}
void classA::setSelection() {}
司机:
classC* classC1 = new classC("tomato");
class1C->setChoice();
cout << "Name is " << classC1->getName() << endl;
cout << "Choice is " << classC1->getChoice() << endl;
我有一个设置为虚拟的 setChoice 方法,因为我希望 Class C - Class Z 中的每个类都有自己特定的 setChoice 函数。该项目的规范还规定该函数必须在 ClassA 中声明。
我收到一条错误消息,指出 ClassB 需要 1 个参数,但没有提供任何参数。
有人可以指出我正确的方向。我没主意了。