Excerpt from here:Конструкторы наследуется C++
Конструкторы отличаются от других методов класса в том, что они создают новые объекты, в то время как другие методы вызываются существующими объектами. Это одна из причин, по которой конструкторы не наследуются. Наследование означает, что производный объект может использовать метод базового класса, но в случае конструкторов объект не существует до тех пор, пока конструктор не выполнит свою работу.
создать ли конструктор нового объекта или при вызове объект по конструктор вызывается сразу?
Говорит, что конструктор и деструктор не наследуются от базового класса к производному классу, но это программа ниже противоречия, мы создаем объект производного класса, но он выводит конструктор и деструктор базового класса?
class A{
public:
A(){
cout<< Const A called<<endl;
}
~A(){
cout<< Dest A called <<endl;
}
};
Class B : public A{
public:
B(){
cout<< Const B called <<endl;
}
~B(){
cout<< Dest B called <<endl;
}
};
int main(){
B obj;
return 0;
}
Выход:
Const Вызываемая
Const Б называется
Dest Б называется
Dest СА заполненный
Определите конструктор с параметром в 'A', затем посмотрите, унаследовал ли' B' конструктор с параметром. – molbdnilo
Это очень вводящий в заблуждение пост, основанный на очень вводящей в заблуждение цитате из книги, которая не очень ценится как источник знаний на С ++. Вы должны просто игнорировать все это. Производные классы наследуют всех членов от их базы. – juanchopanza
C++ 11 и более поздних версий наследование конструктора, поэтому ** предпосылка неверна **. –