내 mainwindow.h에는 Servo 객체에 대한 포인터를 저장해야하는 QList m_qlServoList가 있습니다.
QList<Servo* > m_qlServoList;
QList에 새 서보 포인터를 추가하려고 할 때 :
m_qlServoList.append(new Servo(iID, iBaudRate));
다음과 같은 오류가 발생합니다.
'void QList <T> :: append (const T &) [with T = Servo *]'의 'this'인수로 'const QList <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;
};
누군가 내가 여기서 뭘 잘못하고 있는지 설명해 줄 수 있다면 좋을 것입니다. 그리고 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
A와 간주됩니다 const QList<Servo *>
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다