我正在尝试在继承的Espresso类中重载方法getDescription(),但是当我在main()中调用它时,会列出Unknown Beverage,并且Espresso类中的默认构造函数似乎没有被调用。
我希望它使用此扩展类从main()打印出Espresso Coffee。
class Beverage
{
string description;
public:
Beverage() : description("Unknown Beverage"){};
string getDescription() { return description; };
};
class Espresso : public Beverage
{
public:
Espresso() { getDescription() = "Espresso Coffee"; };
~Espresso();
};
int main()
{
Beverage *beverage = new Espresso();
cout << beverage->getDescription();
};
答案 0 :(得分:0)
getDescription() = "Espresso Coffee";
不会更改description
成员。它返回一个你改变的新字符串。
您需要在基类中使用setter方法:
Espresso() { setDescription("Espresso Coffee"); };