c++ - 将指向类的指针 append 到 QList QList<Class* >

标签 c++ pointers append constants qlist

在我的 mainwindow.h 中,我有一个 QList m_qlServoList ,它应该存储指向 Servo 对象的指针:

QList<Servo* > m_qlServoList;

当我尝试将新的伺服指针 append 到 QList 时:

m_qlServoList.append(new Servo(iID, iBaudRate));

以下错误结果:

passing 'const QList<Servo*>' as 'this' argument of 'void QList<T>::append(const T&) [with T = Servo*]' discards qualifiers [-fpermissive]

The Servo class header looks as follows:

class Servo
{
public:
    Servo(const int &iID, const int &iBaudRate);
    ~Servo();

    void write_data(Data const& data) const;
    Data& receive_data() const;

private:
    Data m_oData;
};

如果有人能解释我在这里做错了什么,那就太好了。以及如何正确地将指针 append 到 Servo 对象。

最佳答案

虽然我们缺乏信息,但很可能您的QList<Servo *>const .

如果您的调用是通过 const 调用的,则可能会发生这种情况持有 QList 的类的方法.

让我们看一个例子:

class MyClass
    {
        private:
          QList<Servo *> m_qlServoList;
        public:
          void addServo(Servo *ptr) const /* Notice the const here */
            {
              m_qlServoList.append(prt); 
            }
     };

/* from main */
MyClass c;
c.addServo(new Servo(iID, iBaudRate));

此代码无法编译,因为 addServo()方法是const ,这意味着m_qlServoList将被视为 const QList<Servo *> .

关于c++ - 将指向类的指针 append 到 QList QList<Class* >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17503747/

相关文章:

c - 如何查找指针错误?

powershell - Powershell:使用Out-File之后,Robocopy会将一堆乱码 append 到同一日志文件中

javascript - parent 删除不适用于 append 元素

jquery - Jquery的append()行为是异步的吗?

c++ - 设置 QtWebEngineProcess 的参数

c++ - 如何使用另一个类的静态集初始化集...?

python - 对于http请求,python比c++更快吗?

c++ - malloc如何分配内存以及Heap的大小是多少?

c - 为什么指针 "Start"会改变? (C)

c - 是否有理由使用像这样的 C 语言指针 &(*foo)?