2013-09-30 142 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