2014-07-18 54 views
-3

我有這個類:C++頭文件說,變量未定義:

class A 
{ 
public : 

    int Echo (int param) 
    { 
     int num = param + 5; 
     return num; 
    } 
} 

然後在我的Header.h我把下面的定義:

#ifndef A_H 
#define A_H 
    class A 
{ 
public : 

    int Echo (int param1) 
    { 
      return num; 
    } 

#endif 

我有以下問題:

1-應該如何在Header.h中定義類?它們是否應該像原來的* .cpp文件一樣定義,或者它們的簽名是否足夠?

2-頭文件中的定義是否應該附帶函數的return語句?成纔是這樣的:

int Echo(int param) 
{ 
    return num; 
} 

我也問過類似的問題,但有一個不同的問題,它是不是在StackOverflow的接受的編輯會產生一個完全不同的問題陳述的問題。

+4

你需要一個介紹C++的書。他們中的任何人都會解釋如何創建一個班級。 – chris

+6

爲什麼不買一本C++書 - 這將在第一章的其中一章中討論 –

+0

頭文件用於聲明,而不是定義 – davidicus

回答

2

你的頭文件應該是這樣的:

//something.h 
#ifndef A_H 
#define A_H 

class A{ 
public : 
    int Echo (int param1); 
}; 
#endif 

這就是所謂的做一個函數原型。你把函數的實際身體.cpp文件:

//something.cpp 

#include "main.h" 

int A::Echo (int param) 
{ 
    int num = param + 5; 
    return num; 
} 

從你的主文件,包含頭文件,它應該工作。給.cpp文件到您的編譯器(如果您使用的是IDE會爲你做它) 一例的主要文件:

#include <iostream> 
#include "main.h" 

using namespace std; 

int main() 
{ 
    cout << "Hello World" << endl; 
    A a; 
    cout << a.Echo(10) << endl; 
    return 0; 
} 
+0

非常感謝 –