2013-11-14 38 views
0

因此,這裏是我的代碼:頭文件沒有被讀取?

主要

#include<iostream> 
#include "Tclass.h" 
#include "Tclass.cpp" 


using namespace std; 


int main(){ 
    int x = 7; 
    Tclass object; 
    cout << object.OFunction(); 
    return 0; 
} 

頭文件

#ifndef TCLASS_H 
#define TCLASS_H 



class Tclass 
{ 
    public: 
     Tclass(); 
     int OFunction(); 
}; 

#endif // TCLASS_H 

C++樣式表(我相信這是它叫什麼)

#include "Tclass.h" 
#include<iostream> 
#include<cstdlib> 
#include<ctime> 

using namespace std; 

Tclass::Tclass() 
{ 
    cout << "An object for this class has been created \n"; 
} 

int Tclass::OFunction(){ 
    srand(time(0)); 
    return 1+(rand()%6); 
} 

我問題是我聽說我不需要包含#include"Tclass.cpp"在我的代碼,但沒有它我的代碼將無法運行。另外我從主目錄中刪除頭文件仍然有效。我相信這個人是正確的,但我根本無法得到這個工作。我使用的IDE是code :: blocks。

回答

1

你不應該包括cpp文件(它不是所謂的樣式表,它是一個源文件)將main.cpp和Tclass.cpp分別編譯到目標文件中,然後將目標文件鏈接到一個二進制文件中。

哦,不使用using namespace std,不從教科書複製代碼,教科書中的代碼是從實際的生產代碼非常不同,教科書中的代碼,就是要簡潔,只顯示在手的特定主題。

0

正確,你不應該在主程序中包含.cpp文件。相反,你應該將文件添加到項目中(我很久沒有使用過Code :: Blocks了,但是我確定在菜單的某處有一個非常明顯的「添加文件到項目」選項 - 「文件「或」項目「將是首先看的地方)。

[沒有,這就是所謂的「源文件」 - 一個樣式表是您在Web開發使用的東西]