Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ does not name a type in Constructor definition

I try to compile my code, I pretty sure I made a mistake in my headers or in the compilation but I don't understand where. I know that this is a basic problem, and I read some other topic, but I really don't understand. And I watch some other code I wrote and I don't see any difference...

g++ -c main.cpp -o out

I don't understand the error, so I also try :

g++ -c readFastqFile.cpp

The error

readFastqFile.cpp:8:1: error: ‘readFastq’ does not name a type
 readFastq::readFastq(){ //Constructor

And my files are :

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;
}

Thanks

like image 921
user3608663 Avatar asked May 21 '26 18:05

user3608663


1 Answers

#ifdef READFASTQFILE_HPP should be #ifndef READFASTQFILE_HPP. The #ifdef is causing the contents of readFastqFile.hpp to be ignored, so the class definition isn't being compiled.

See also Include guards

like image 183
interjay Avatar answered May 23 '26 09:05

interjay



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!