Array object constructor error
Unsolved
General and Desktop
-
Array object constructor error.
At runtime, the value of the array is determined,
I do not know how to solve this problem.int setRoom = 9; RoomButton *room = new RoomButton[setRoom]; // RoomButton Inheritance QPushButton QString roomNum[setRoom]; roomNum[0] = "201"; roomNum[1] = "202"; roomNum[2] = "203"; roomNum[3] = "205"; roomNum[4] = "206"; roomNum[5] = "207"; roomNum[6] = "208"; roomNum[7] = "209"; roomNum[8] = "210"; for(int ii =0; ii<3; ii++){ for (int i =0; i<3; i++){ ui->roomSeletGLayout->addWidget(&room[ii*3+i],ii,i); // Good work! room[ii*3+i]->setText(roomNum[ii*3+i]); // This is error...T^T } }
Thanks in advance for your help.
-
Thank you for your reply.
Error message is as follows.
/home/jiminkim/QtProject/SVD110_Tesst/mainwindow.cpp:30: error: base operand of ‘->’ has non-pointer type ‘RoomButton’ room[ii*3+i]->setText(roomNum[ii*3+i]); // it is error...T^T ^~
/home/jiminkim/QtProject/SVD110_Tesst/mainwindow.cpp:30: error: member reference type 'RoomButton' is not a pointer; did you mean to use '.'?
I do not know if C ++ 99 or later is correct....
But recently installed.
Using compiler (Linux Ubuntu)
-
You would need a CONFIG settings like
CONFIG += c++11
for C++11 standard. Depending on your actual compiler version this might be already default.
The syntax of
RoomButton *room = new RoomButton[setRoom];
is wrong for you try to do. It should be more like
RoomButton *room[setRoom]; for ( int i = 0; i < setRoom; ++i ) RoomButton[i]= new RoomButton;
However, I recommend using a container such as std::vector or QVector for handling this.
Note: above source is brain to keyboard not tested.