C++中的Java多态性

Java polymorphism in C++

本文关键字:多态性 Java 中的 C++      更新时间:2023-10-16

此代码引发错误:

class A {};
class B : public A {};
int main() {
    A instance = new B();
}

错误信息:

void *operator new(unsigned int)
no suitable constructor exists to convert from "B *" to "A"

的第一语言是Java,我对此感到非常困惑。每个子类都可以被视为其母类,因为它派生了所有内容,那么为什么他们不应该添加选项将 B 视为 A?

还是我的语法有误?我开始学习C++3个弱点,这是可能的。

无法通过谷歌或搜索我的教程找到解决方案,所以请帮助我。

这是

您的代码在C++中的样子:

class A {};
class B : public A {};
int main() {
    std::unique_ptr<A> instance = std::make_unique<B>();
}