Я довольно запутался в ответах, которые я нашел в ответе на ошибку.
У меня есть один класс, от которого я хочу наследовать.Но когда я пытаюсь наследовать, я получаю указанную ошибку.Ни один из этих классов не использует заголовочные файлы, так как я делаю это только для того, чтобы узнать, как работают виртуальные переопределения.Я довольно новичок в C ++.Так что речь идет не о том, чтобы что-то сделать, а о том, как лучше понимать C ++.
Когда я ищу ответ в Google, обычно возникают проблемы с заголовочными файлами и ключевыми словами "#include".
И не так уж много кода для работы.Какие-либо предложения?
edit:
Как я уже сказал, не так много кода для работы, также и другие файлы, которые я не включил, ничем не отличаются от Pianist
/*
* File: main.cpp
* Author: Sidar
*
* Created on 19 juli 2011, 17:51
*/
#include <cstdlib>
#include <iostream>
#include "Musician.cpp"
#include "Pianist.cpp"
#include "MasterPianist.cpp"
#include "JuniorPianist.cpp"
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
Musician *m = new Musician();
Pianist *p = new Pianist();
//JuniorPianist *jp = new JuniorPianist();
MasterPianist *mp = new MasterPianist();
//__________________________
cout << "Pianist greets:\n";
m->greet();
cout << "And this is a:\n";
m = p;
m->greet();
cout << "The pianist states his proffesion:\n";
m = mp;
m->greet();
cout << "And this is his student:\n";
// m = jp;
m->greet();
return 0;
}
Класс, который должен быть унаследован
#include <iostream>
using namespace std;
class Musician{
public:
//Constructors
Musician(){}
Musician(const Musician& m){}
~Musician(){}
//Methods/Functions
virtual void greet(){
cout << "Hello";
}
};
Класс, который пытается наследовать.
/*
* File: Pianonist.cpp
* Author: Sidar
*
* Created on 19 juli 2011, 17:58
*/
#include <iostream>
using namespace std;
class Pianist: public Musician {
public:
Pianist(){}
Pianist(const Pianist& orig){}
~Pianist() {}
//____________________________________
void greet(){
cout << " This is pianist";
}
};