New*_*ile -1 c++ printing syntax function object
我正在尝试编写一个测试函数进行打印.一切都很好,但为什么不打印?我究竟做错了什么?有人可以帮帮我吗?谢谢
oneLine.cpp
#include "oneLine.h"
#include <iostream>
OneLine::OneLine() {
cout << "test";
}
OneLine::~OneLine() {
cout << "~test";
}
Run Code Online (Sandbox Code Playgroud)
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();
};
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include "oneLine.h"
using namespace std;
int main () {
OneLine oLine();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是一个函数声明:
OneLine oLine(); // declaration of a function returning a OneLine object
Run Code Online (Sandbox Code Playgroud)
要默认构造一个OneLine对象,您需要
OneLine oLine;
Run Code Online (Sandbox Code Playgroud)
或者,在C++ 11中,您还可以使用{}:
OneLine oLine{};
Run Code Online (Sandbox Code Playgroud)
接下来,正如@POW在注释中指出的那样,必须创建默认构造函数和析构函数public.目前他们是private.
另外,请注意这using namespace std被认为是不好的做法,特别是在头文件中.