我收到以下错误消息:
conversion from ‘BaseClass’ to non-scalar type ‘DerivedClass’ requested
同时编译如下内容:
AnotherClass response;
DerivedClass message = response.serialize(QString("someStuff"));
我在哪里
BaseClass AnotherClass::serialize( const QString& valueName ) const
和
class DerivedClass : public BaseClass
{
...
DerivedClass &operator=(const BaseClass &other);
}
有人可以解释这里有什么问题,更重要的是为什么?
最佳答案
DerivedClass message = response.serialize(QString("someStuff"));
这是复制初始化,而不是赋值,并且
operator=
甚至都没有起作用。您要么需要采用
BaseClass
的构造函数,要么这样编写:AnotherClass response;
DerivedClass message;
message = response.serialize(QString("someStuff")); // assignment
关于c++ - 从基础创建派生类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21876426/