我尝试编译我的代码,我很确定自己在 header 或编译中犯了一个错误,但是我不知道在哪里。我知道这是一个基本问题,我读了其他一些话题,但我真的不明白。我看了我编写的其他代码,但没有发现任何区别。
g++ -c main.cpp -o out
我不明白该错误,因此我也尝试:
g++ -c readFastqFile.cpp
错误
readFastqFile.cpp:8:1: error: ‘readFastq’ does not name a type
readFastq::readFastq(){ //Constructor
我的文件是:
main.cpp
#include <iostream>
#include <string>
#include "readFastqFile.hpp"
using namespace std;
int main(int argc, char *argv[]){
cout << "hello" <<endl;
//readFastq allReads;
return 0;
}
readFastqFile.hpp
#ifdef READFASTQFILE_HPP
#define READFASTQFILE_HPP
#include <iostream>
#include <string>
using namespace std;
class readFastq{
public:
readFastq(); //constructor
private:
string readName;
string sequence;
string score;
};
#endif // READFASTQFILE_HPP
readFastqFile.cpp
#include <string>
#include <iostream>
#include "readFastqFile.hpp"
using namespace std;
readFastq::readFastq(){ //Constructor
readName = "bla";
cout << readName <<endl;
}
谢谢
最佳答案
#ifdef READFASTQFILE_HPP
应该是#ifndef READFASTQFILE_HPP
。 #ifdef
导致readFastqFile.hpp的内容被忽略,因此未在编译类定义。
另请参阅Include guards
关于c++ - C++在构造函数定义中未命名类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29632476/