我试图从 QMatrix4x4 派生一个类来添加一些功能

class MyMatrix: public QMatrix4x4{};

一旦我这样做,我会收到以下错误消息
QMatrix4x4 a, b, c;
MyMatrix   A, B, C;

a=a+b;  //works
A=B+C;  //error: no match for operator=

看来我正在失去以前存在于父类中的功能。或者为什么任务不再起作用?

最佳答案

您的派生类可能没有定义自己的 operator+() 。因此, B+C 调用 QMatrix4x4::operator+() ,它返回一个 QMatrix4x4 。除非 MyMatrix A 提供适当的构造函数/赋值运算符,否则您不能将其分配给 MyMatrix

关于c++ - 运算符 = 从 QMatrix4x4 派生时不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34630980/

10-11 04:42