У меня сложилось впечатление, что это невозможно, см., например:
Вызов конструктора базового класса после некоторых других инструкций на С++
Но следующая программа запускает и создает две строки "Person конструктора":
#include <iostream>
class Person
{
public:
Person()
{
std::cout << "Constructor Person" << std::endl; }
};
class Child : public Person
{
public:
Child()
{
c = 1;
Person();
}
int c;
};
int main()
{
Child child;
return 0;
}
Первый - это неявный вызов конструктора по умолчанию, который очищается. Как насчет второго - означает ли это, что действие, описанное в названии, является законным? Я использую Visual С++ 2010.