У меня есть родительский класс, который принимает две ссылки, которые могут или не могут быть ссылками на одно и то же. В этом случае, если они такие же, я получаю предупреждение точку последовательности в списке инициализатора моего ребенка класса:Предупреждение о последовательности в списке инициализаторов
class A
{
public:
A(int) {}
private:
A() {}
};
class Parent
{
public:
Parent(A&, A&) {}
};
class Child : public Parent
{
public:
Child() :
Parent(
*(_A = new A(0)),
*(_A)) //Warning on this line
{
}
private:
A *_A;
};
int main(int argc, char** argv)
{
return 0;
}
Я предполагаю, что это потому, что разыменования на этой линии не гарантируется происходит после того, как память была выделена. Независимо от того, мой вопрос в том, есть ли все равно вокруг этого без внесения изменений ни в Родитель, ни в A?