Доброго времени суток!
Собственно заинтересовало следеющее, вот код:
#include <iostream>
#include <string>
using namespace std;
class A {
int a;
double b;
double * asd;
public:
A(int a)
{
this->a = a;
//asd = new double [1000000];
}
A(double b, double c)
{
this->b = b;
//asd = new double [1000000];
}
~A()
{
a = 0;
b = 0.0;
//delete [] asd;
}
};
class B
{
public:
A aasd;
B(int aaa): aasd(aaa) {}
};
int _tmain(int argc, _TCHAR* argv[])
{
A aaaa(1);
aaaa = A(5.5, 4.0);
return 0;
}
Слегка удивлен тем что сначала отработал конструктор для параметра 1, затем конструктор для 5.5, 4.0, затем вызвались 2 деструктора... В стандарте за 98 год ничего не нашел, поэтому интересно, такое использование конструкторов вообще корректно?