I'm trying to separate classes to different cpp files.
my files are:
Source.h:
#pragma once
#include "stdafx.h"
#include <iostream>
class printData {
public:
void print(int i);
void print(double f);
void print(char* c);
};
Source.cpp:
#include "stdafx.h"
#include <iostream>
using namespace std;
class printData {
public:
void print(int i) {
cout << "Printing int: " << i << endl;
}
void print(double f) {
cout << "Printing float: " << f << endl;
}
void print(char* c) {
cout << "Printing character: " << c << endl;
}
};
ConsoleApplication3.cpp:
#include "stdafx.h"
#include <iostream>
#include "Source.h"
using namespace std;
int main(void) {
printData pd;
// Call print to print integer
pd.print(5);
// Call print to print float
pd.print(500.263);
// Call print to print character
pd.print("Hello C++");
return 0;
}
But when i try to build to project i'm getting :
1>ConsoleApplication3.obj : error LNK2019: unresolved external symbol "public: void __thiscall printData::print(int)" (?print@printData@@QAEXH@Z) referenced in function _main
1>ConsoleApplication3.obj : error LNK2019: unresolved external symbol "public: void __thiscall printData::print(double)" (?print@printData@@QAEXN@Z) referenced in function _main
1>ConsoleApplication3.obj : error LNK2019: unresolved external symbol "public: void __thiscall printData::print(char *)" (?print@printData@@QAEXPAD@Z) referenced in function _main
If i will combine all the files to just ConsoleApplication3.cpp there will be no error.