C++中的Java多态性
Java polymorphism in C++
此代码引发错误:
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>();
}
相关文章:
- 多态性和功能结合
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- C++boost序列化多态性问题
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 如何在多线程中正确使用unique_ptr进行多态性?
- 具有智能指针的多态性
- 在 C++ 中在堆栈上创建实例时如何保持多态性?
- 继承/多态性 - 我是否被迫使用"protected"变量?
- C++ 多态性在代码::块 17.12 中不起作用
- C++ 泛型和多态性:这种模式可行吗?
- 为什么我们实际上需要运行时多态性?
- 如何在这个简单的最小示例中实现多态性?
- JAVA和C++中的多态性相同吗?
- C++中的Java多态性
- C++ vs Java 中的多态性
- C++等价于简单的Java多态性
- 多态性?C++与Java
- c++与java中运行时多态性的成本比较
- 使用指示器的c++和Java之间SWIG多态性中的内存泄漏