Вызов виртуальной функции из конструктора
я читаюЭффективный С ++и есть "Пункт 9: Никогда не вызывайте виртуальные функции во время строительства или разрушения »., И я'Мне интересно, если мой код в порядке, даже если он нарушает это правило:
using namespace std;
class A{
public:
A(bool doLog){
if(doLog)
log();
}
virtual void log(){
cout < "logging A\n";
}
};
class B: public A{
public:
B(bool doLog) : A(false){
if(doLog)
log();
}
virtual void log(){
cout < "logging B\n";
}
};
int main() {
A a(true);
B b(true);
}