我们如何使用抽象类作为函数返回类型? 在这个函数中,派生类型作为抽象类型返回C++的方式是什么?
假设函数创建一个派生类型,并希望将该对象作为抽象基类型返回。如何在C++中使用,而不必像指针那样使用混乱的C?p> 您是否在询问示例代码?希望这有助于我们如何使用抽象类作为函数返回类型? 在这个函数中,派生类型作为抽象类型返回C++的方式是什么?,c++,C++,假设函数创建一个派生类型,并希望将该对象作为抽象基类型返回。如何在C++中使用,而不必像指针那样使用混乱的C?p> 您是否在询问示例代码?希望这有助于 class Mammal { public: virtual void Speak() const = 0; }; class Dog : public Mammal { public: void Speak() const { cout << "Woof Woof" << endl;
class Mammal {
public:
virtual void Speak() const = 0;
};
class Dog : public Mammal {
public:
void Speak() const {
cout << "Woof Woof" << endl;
}
};
Mammal* getDog() {
return new Dog();
}
int main() {
Mammal* m = getDog();
m->Speak();
delete m;
return 0;
}
类哺乳动物{
公众:
虚拟void Speak()常量=0;
};
犬类:公共哺乳动物{
公众:
void Speak()常量{
CUT你求助于漂亮的C++智能指针。在我开始阅读智能指针之前,只需要一个澄清点。这是C++中处理此类问题的唯一方法吗?如果你想使用抽象类,你必须使用指针。聪明指针是最好的去路。“贾斯廷,不,你是这样做的,而不是使用抽象的CLASE。s、 但是这很糟糕,因为你必须列出所有的可能性,然后用条件代码显式地处理它们。我认为这是OP想要避免的“混乱的C类指针”的一个例子(有很好的理由避免它们)。阅读std::shared_ptr的文档就可以了。谢谢你的输入。