Search code examples
c++header-filesundeclared-identifier

.cpp file will not link with .h file


I am trying to connect two cpp files - MIPSConversion.cpp and TestMIPSConversion.cpp - to the same header file - MIPSConversion.h. However, when I try to call the method readInTheFile() (located in MIPSConversion.cpp) from main() (located in TestMIPSConversion.cpp) I get the error use of undeclared identifier 'readInTheFile'. How do I correct this issue?

MIPSConversion.h

#include <iostream>
using namespace std;

class MIPSConversion
{
    public: 
    MIPSConversion();
    ~MIPSConversion();

    void readInTheFile();
};

MIPSConversion.cpp

#include <iostream>
#include <fstream> 
#include "MIPSConversion.h"
using namespace std;

   MIPSConversion::MIPSConversion(){}
   MIPSConversion::~MIPSConversion(){}

    void MIPSConversion::readInTheFile(){
        string inputFileName; 
        char* arrayString = new char[31];

        cout << "Enter the name of the file you want to import: " << endl;
        inputFileName = cin;
        getline(cin, inputFileName);
        ifstream inputFile (inputFileName, ifstream::in);

        while (inputFile.good()) {
            for(int i = 0; i < 31; i++){
                arrayString[i] = inputFile.get();
            }  
            cout << arrayString; 
            if (inputFile.peek() == std::ifstream::traits_type::eof()){
                break;
            }
        }

        inputFile.close();
    }

TestMIPSConversion.cpp

#include <iostream>
#include "MIPSConversion.h"
using namespace std;

int main()
{   
    readInTheFile();
    return(0);
}

Solution

  • You need to create an object of MIPSConversion in main. Then you can use its member function readInTheFile(). Like the following:

    MIPSConversion myObj;
    myObj.readInTheFile();