我創建了簡單的代碼片段來顯示我注意到的奇怪行爲。就是這樣:Qt忽略const說明符
#include <QCoreApplication>
#include <QLineEdit>
class MyObject : public QWidget
{
public:
explicit MyObject(QWidget *parent = 0) : QWidget(parent) {
editor = new QLineEdit(this);
}
void setValue(const QString &s) const {
editor->setText(s);
editor->setReadOnly(true);
editor->setMaxLength(s.length());
}
private:
QLineEdit *editor;
};
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
return app.exec();
}
MyObject::setValue
功能有const
符,但是這個代碼編譯好。需要注意的是setText
,setReadOnly
和setMaxLength
功能不const
:
void setText(const QString &);
void setReadOnly(bool);
void setMaxLength(int);
我只是想知道是什麼原因導致這樣的行爲? 我用MingGW 4.6.2使用Qt 4.7.4。
哎喲書面討論!我怎麼能錯過? :) – fasked