引用標頭檔案卻找不到相對應的類

NO IMAGE

問題關鍵出現在標頭檔案中,出現了定義衝突

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#endif // MAINWINDOW_H

每個標頭檔案的開始和結束除會引用如下前處理器變數,而且該變數在程式中是唯一的,主要用來避免多重包含,可是如果你的前處理器變數名重複了 就會發生一些我們不希望的事情。像下面這種情況:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
class mainwindow{
public:
};
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
class first{
public:
};
#endif // MAINWINDOW_H

兩個類 mainwindow和first,使用了一樣的前處理器變數,再引用這兩個類的cpp檔案中,就認為你重複包含而忽略其中一個標頭檔案。

最容易被忽略的操作導致該問題:

給類重新命名,此時類名變了,但是預處理變數沒有改變,這就為變數重複埋下隱患