я получаю 2 комплекта ошибок при попытке построить:ошибка наследования класса?
(на первой сборки)
In constructor 'aa::aa(int)':
no matching function for call to 'bb:bb()'
candidates are: bb::bb(int)
bb:bb(const bb&)
(тогда я ударил построить снова и получить следующее)
file not recognized: File truncated... takes me to assembly
collect2:ld returned 1 exit status
#ifndef BB_H
#define BB_H
class bb
{
public:
bb(int _m);
int m;
};
#endif // BB_H
#ifndef AA_H
#define AA_H
#include "AA/bb.h"
class aa : bb
{
public:
aa(int _i);
int i;
int j;
};
#endif // AA_H
#include "bb.h"
bb::bb(int _m)
{
m = _m * 5;
}
#include "aa.h"
aa::aa(int _i)
{
i = _i;
j = i + 1;
}
Для инициализации базы данных вам нужно использовать список инициализаторов. Это должно быть рассмотрено в любом учебнике или наследовании. – chris
Если вы не понимаете, о чем говорит крис: производный конструктор вызовет базовый класс default construtor 'bb: bb()'. Поскольку вы не указали 'bb: bb()', он не может построить объект 'aa' (он не знает, как построить его базу).Однако вы можете указать, что 'aa :: aa (int)' должен использовать 'bb :: bb (int)': aa: aa (int _i): bb (_i) {/ * ... * /} '. Подробности можно найти в любой достойной книге. – Zeta