是否有一種機制檢查標頭是否正確地執行了實現?標題與C++中的實現不同
例
//my_pi.cpp
float my_pi(){
return 3.14;
}
//my_pi.h
int my_pi();
//main.cpp
#include <iostream>
#include "my_pi.h"
int main()
{
float returned;
returned = my_pi();
cout << returned;
}
此編譯沒有錯誤,但是它給出錯誤的結果。我剛剛開始學習C++,這看起來像是一種非常簡單的方法,用於製作在OOP概念發揮作用時很難追蹤的錯誤(具有大型原型的類)。
還是有東西我失蹤了,它是一件好事,能夠定義一個不同的標題,而且只需要小心?
您是否已將警告級別設置爲最高? –
@claptrap我不認爲這將有助於在這種情況下。編譯階段沒有錯。對於鏈接器,一切都很好:'main.cpp'試圖使用符號'_Z5my_piv'和'my_pi.cpp'來產生它。沒有返回式安全。 –
@JonathonReinhart因此,對於更復雜的類原型,符號可能會不同,並且會出現編譯器錯誤? Off topic:你如何檢查生成的符號? – TheMeaningfulEngineer