Lor*_*nas 16 c++ oop class header-files
我对C++比较陌生(所以请尽量保持答案简单!),我无法理解为什么会出现错误: C++ requires a type specifier for all declarations whilst defining methods.
我正在尝试编写一个简单的程序来逐行读取文本文件,将值存储到数组中.但是,当我尝试在.cpp文件中声明方法时,我遇到了一个问题.请在下面找到代码.
StringList.h
#ifndef StringListH
#define StringListH
#include <vector>
#include <string>
class StringList {
public:
StringList();
~StringList();
void PrintWords();
private:
size_t numberOfLines;
std::vector<std::string> str;
};
#endif
Run Code Online (Sandbox Code Playgroud)
StringList.cpp
#include "StringList.h"
#include <fstream>
#include <istream>
#include <algorithm> // std::copy
#include <iterator> // istream_iterator
using namespace std;
StringList::StringList()
{
ifstream myfile("input.in");
if (myfile.is_open())
{
copy(
istream_iterator<string>(myfile),
istream_iterator<string>(),
back_inserter(str));
}
numberOfLines = str.size();
}
StringList::~StringList(){
//Deconstructor
}
// Error Happens Here
StringList::PrintWords(){
//Print My array
}
Run Code Online (Sandbox Code Playgroud)
我google无济于事,我不太明白如何阅读C++的正确文档,所以我有点卡住了.到目前为止,我已经写了大约3或4个(简单的)面向对象的程序,我从来没有遇到过这个问题.如果它有助于我使用Xcode,但我在eclipse中得到了同样的错误.
它似乎任何方法,无论返回类型,名称,我的头文件中定义的参数给出此错误 - 但构造函数是好的.如果删除PrintWords(),项目构建就好了.
任何指针将非常感谢!
您的成员函数PrintWords
原型为:
void PrintOn();
Run Code Online (Sandbox Code Playgroud)
意思是它返回void
。当你在别处实现你的函数时,你仍然需要提供返回类型,你错误地忽略了它:
/* void */ StringList::PrintOn() { ... }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
63122 次 |
最近记录: |