2013-09-30 47 views
-1

我正試圖編寫一個用於打印的測試函數。一切都編譯好,但爲什麼不打印?我究竟做錯了什麼?有人可以幫我嗎?感謝C++單獨的函數print

oneLine.cpp

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


OneLine::OneLine() { 

cout << "test"; 

} 

OneLine::~OneLine() { 

cout << "~test"; 

} 

oneLine.h

#include <string> 
using namespace std; 

class OneLine { 

    OneLine(); 
    ~OneLine(); 
    void breakLine(); 
    void printReverse(); 
    istream &readLine(istream& is); 
    string returnLine(); 

private: 
    string oneLine; 
    char **words; 
    int wordCount; 
    void resetLine(); 

}; 

的main.cpp

#include "oneLine.h" 

using namespace std; 

int main() { 

OneLine oLine(); 


return 0; 
} 
+0

查找「[最]煩人的解析」。 – Angew

回答

5

這是一個函數聲明:

OneLine oLine(); // declaration of a function returning a OneLine object 

要默認構造OneLine對象,需要

OneLine oLine; 

,或者在C++ 11,你也可以使用{}

OneLine oLine{}; 

接着,@POW在評論中指出,你的默認構造函數和析構函數必須被製作成public。目前他們是private

另外,請注意using namespace std is considered bad practice,特別是在頭文件中。

+1

並且構造函數和析構函數需要在'public'部分,對於這種情況 – P0W

+1

@ P0W好抓!我將它添加到我的答案中。 – juanchopanza

+0

我改變「OneLine oLine();」到「OneLine oLine」;在main.cpp中,但它甚至不能編譯。你什麼意思? – NewFile