Во время практики наследования в c ++ я продолжал получать следующую ошибку:
base1.o: в функции Base1::Base1()':
base1.cpp:(.text+0x75): undefined reference to
Base2 :: Base2 () 'base1.o: в функции Base1::Base1()':
base1.cpp:(.text+0xa5): undefined reference to
Base2:: Base2 () 'collect2: ld вернул 1 состояние выхода make: * [test] Ошибка 1
Я удалил весь ненужный код, так что осталось только это:
base1.h :
#include "base2.h"
#ifndef BASE1_H_
#define BASE1_H_
class Base1 : public Base2 {
public:
Base1();
};
#endif
base1.cpp :
#include <QStringList>
#include <QTextStream>
#include "base1.h"
#include "base2.h"
QTextStream cout(stdout);
QTextStream cin(stdin);
Base1::Base1() : Base2() {
cout << "\nB1\n\n" << flush;
}
base2.h :
#ifndef BASE2_H_
#define BASE2_H_
class Base2 {
public:
Base2();
};
#endif
base2.cpp :
#include <QStringList>
#include <QTextStream>
#include "base2.h"
QTextStream cout(stdout);
QTextStream cin(stdin);
Base1::Base1() {
cout << "\nB2\n\n" << flush;
}
child.cpp :
#include <QStringList>
#include <QTextStream>
#include "base1.h"
#include "base2.h"
QTextStream cout(stdout);
QTextStream cin(stdin);
Base1::Base1() {
cout << "\nB2\n\n" << flush;
}
Это, вероятно,простая проблема, но я потратил около 2 часов на поиск решения в Google и ничего не нашел, поэтому я был бы признателен за любую помощь.
Привет,
спасибо всемза ваши ответы до сих пор.
Я изменил base2.cpp на:
#include <QStringList>
#include <QTextStream>
#include "base2.h"
QTextStream cout(stdout);
QTextStream cin(stdin);
Base2::Base2() {
cout << "\nB2\n\n" << flush;
}
однако я все еще получаю ту же ошибку.Я думаю, что это как-то связано с "#include", но я не знаю, как это сделать правильно: (.