c语言中错误c2228,错误:C2228:''必须有class/struct/union
我是一個很長時間的Java用戶用Qt學習C++,我在理解方法如何工作方面遇到了很多麻煩.現在,我正在試圖找出數據庫,并試圖用標題簡化我的代碼.通常在Java中我只有一個名為DatabaseControl的類,它帶有一個void方法,可以執行我想要的任何操作.例如,正如我現在所做的那樣,將員工添加到數據庫.我通過做類似的事情來實例化這個類
DatabaseControl myDBControl = new DatabaseControl();
然后用.執行方法
myDBControl.addEmploye();
這將為用戶提供一系列輸入框,以輸入員工姓名,部門等信息.
所以,現在轉到C++.我有我的標題
class DatabaseControl
{
public:
DatabaseControl();
~DatabaseControl();
//Methods
void addEmployee();
};
我的構造函數中沒有任何參數,因為我想要做的就是在我的main中調用"addEmployee"方法,如上所示.在同一個頭文件中,我在我的類聲明下面有這個
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();
}
}
然后在我的主要我有這個:
void MainWindow::on_addEmployee_clicked()
{
DatabaseControl myDBControl();
myDBControl.addEmployee();
}
我希望只運行我在頭文件中寫的addEmployee方法.但是,當我編譯時,我得到錯誤錯誤:C2228:'.addEmployee'的左邊必須有class/struct/union
我已經查看了這個錯誤的其他實例,并沒有真正理解錯誤的原因,我覺得它來自于我對C++中的方法的誤解,因為我在Java中知道這樣的東西可以正常工作(假設代碼在標題是正確的,它很可能不是)
總結
以上是生活随笔為你收集整理的c语言中错误c2228,错误:C2228:''必须有class/struct/union的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面对offer,如何选择
- 下一篇: 用diff命令制作补丁