добавление указателей на класс в QList QList & lt; Class * & gt;

В моем mainwindow.h у меня есть QList m_qlServoList, который должен хранить указатели на объекты Servo:

QList<Servo* > m_qlServoList;

Когда я пытаюсь добавить новый указатель сервомотора в QList:

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

Следующие ошибки:

прохождение 'const QList<Servo *>'как' этот 'аргумент' void QList<T>:: append (const T) [with T = Servo *] 'отбрасывает квалификаторы [-fpermissive]

Заголовок класса Servo выглядит следующим образом:

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;
};

Было бы здорово, если бы кто-нибудь объяснил мне, что я здесь делаю не так. И как правильно добавлять указатели к серво объектам.

2

Решение

Хотя нам не хватает информации, вполне вероятно, что ваш 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 *>,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]