[英]#include .h or .cpp file?
所以我有一個看起來很奇怪的問題:當我導入一個單獨的類的.h文件時,我的非常基本的程序會生成一條錯誤消息(未定義對'foo :: foo(int)'的引用)。 但是,當我將導入文件更改為.cpp時,一切正常。
現在,我已經閱讀了一些,看了一些視頻教程,他們都說相同:導入.h文件。 那為什么不起作用呢?
我在Windows 7中使用Code :: Blocks,在其中編譯和運行(沒有命令行),我確實懷疑某些設置不正確,但是,我想確定是否是我的代碼失敗。
Main.cpp:
#include <iostream>
#include "Foo.h" //This don't work. If i include Foo.cpp it does.
using namespace std;
int main()
{
Foo k(10);
cout << k.getInt() << endl;
}
foo.h:
#ifndef FOO_H
#define FOO_H
class Foo
{
public:
Foo(int tall);
int getInt()const;
protected:
private:
int m;
};
#endif
Foo.cpp:
#include "Foo.h"
Foo::Foo(int tall)
: m(tall)
{
//ctor
}
int Foo::getInt()const
{
return m;
}
在執行鏈接步驟時,您無法編譯和/或鏈接Foo.cpp文件。 我對Code :: Blocks並不熟悉,所以我無法告訴您如何解決。
您需要同時編譯main.cpp和foo.cpp並將兩個結果對象文件鏈接在一起。
右鍵單擊您的.cpp文件,然后轉到屬性。 在“構建”選項卡上,確保已檢查“編譯”,“鏈接”,“調試”和“發布”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.