c语言中错误c2228,错误:C2228:''必须有class/struct/union
我是一個(gè)很長時(shí)間的Java用戶用Qt學(xué)習(xí)C++,我在理解方法如何工作方面遇到了很多麻煩.現(xiàn)在,我正在試圖找出數(shù)據(jù)庫,并試圖用標(biāo)題簡(jiǎn)化我的代碼.通常在Java中我只有一個(gè)名為DatabaseControl的類,它帶有一個(gè)void方法,可以執(zhí)行我想要的任何操作.例如,正如我現(xiàn)在所做的那樣,將員工添加到數(shù)據(jù)庫.我通過做類似的事情來實(shí)例化這個(gè)類
DatabaseControl myDBControl = new DatabaseControl();
然后用.執(zhí)行方法
myDBControl.addEmploye();
這將為用戶提供一系列輸入框,以輸入員工姓名,部門等信息.
所以,現(xiàn)在轉(zhuǎn)到C++.我有我的標(biāo)題
class DatabaseControl
{
public:
DatabaseControl();
~DatabaseControl();
//Methods
void addEmployee();
};
我的構(gòu)造函數(shù)中沒有任何參數(shù),因?yàn)槲蚁胍龅木褪窃谖业膍ain中調(diào)用"addEmployee"方法,如上所示.在同一個(gè)頭文件中,我在我的類聲明下面有這個(gè)
void DatabaseControl::addEmployee(){
QSqlQuery qry;
bool ok;
QString firstName = QInputDialog::getText(NULL, "QInputDialog::getText()",
"Employee first name:", QLineEdit::Normal,
NULL, &ok);
if (ok && !firstName.isEmpty()){}
else{
QMessageBox msgBox;
msgBox.setWindowTitle("Error");
msgBox.setText("Failed to add employee.\nReason: No employee name given.");
msgBox.exec();
}
QString lastName = QInputDialog::getText(NULL, "QInputDialog::getText()",
"Employee last name:", QLineEdit::Normal,
NULL, &ok);
if (ok && !lastName.isEmpty()){
qry.prepare("INSERT INTO employees (firstname, lastname)" "VALUES (:f1, :f2)");
qry.bindValue(":f1", firstName);
qry.bindValue(":f2", lastName);
qry.exec();
}
else{
QMessageBox msgBox;
msgBox.setWindowTitle("Error");
msgBox.setText("Failed to add employee.\nReason: No employee name given.");
msgBox.exec();
}
}
然后在我的主要我有這個(gè):
void MainWindow::on_addEmployee_clicked()
{
DatabaseControl myDBControl();
myDBControl.addEmployee();
}
我希望只運(yùn)行我在頭文件中寫的addEmployee方法.但是,當(dāng)我編譯時(shí),我得到錯(cuò)誤錯(cuò)誤:C2228:'.addEmployee'的左邊必須有class/struct/union
我已經(jīng)查看了這個(gè)錯(cuò)誤的其他實(shí)例,并沒有真正理解錯(cuò)誤的原因,我覺得它來自于我對(duì)C++中的方法的誤解,因?yàn)槲以贘ava中知道這樣的東西可以正常工作(假設(shè)代碼在標(biāo)題是正確的,它很可能不是)
總結(jié)
以上是生活随笔為你收集整理的c语言中错误c2228,错误:C2228:''必须有class/struct/union的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面对offer,如何选择
- 下一篇: 用diff命令制作补丁