其他分享
首页 > 其他分享> > 错误“C在定义方法时需要所有声明的类型说明符”

错误“C在定义方法时需要所有声明的类型说明符”

作者:互联网

我对C比较陌生(所以请尽量保持答案简单!),我无法理解为什么会出现错误:C在定义方法时需要所有声明的类型说明符.

我正在尝试编写一个简单的程序来逐行读取文本文件,将值存储到数组中.但是,当我尝试在.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

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
}

我google无济于事,我还不太明白如何阅读C的正确文档,所以我有点卡住了.到目前为止,我已经写了大约3或4个(简单的)面向对象的程序,我从来没有遇到过这个问题.如果它有助于我使用Xcode,但我在eclipse中得到了同样的错误.

它似乎任何方法,无论返回类型,名称,我的头文件中定义的参数给出此错误 – 但构造函数是好的.如果删除PrintWords(),项目构建就好了.

任何指针将非常感谢!

解决方法:

你宣布它是无效的,但你忘了把它放在定义中.应该:

void StringList :: PrintWords()

标签:c,class,oop,header-files
来源: https://codeday.me/bug/20191005/1857221.html