//Вопрос про инициализацию
От: egoruk  
Дата: 06.10.06 06:11
Оценка:
Есть код:

#include <windows.h>

class vec2
{
public:
float x, y;
vec2() : x(0), y(0) {}
vec2(const float _x, const float _y) : x(_x), y(_y) {}
};

class mat22
{
public:
union
{
struct
{
float a00, a10;
float a01, a11;
};
struct
{
vec2 c0, c1;
};
};

mat22();

mat22(const float _a00, const float _a10,
const float _a01, const float _a11);
mat22(const vec2 &_c0, const vec2 &_c1);
};

inline mat22::mat22() :
a00(0), a10(0),
a01(0), a11(0)
{
}

inline mat22::mat22(const float _a00, const float _a10,
const float _a01, const float _a11) :
a00(_a00), a10(_a10),
a01(_a01), a11(_a11)
{
}

inline mat22::mat22(const vec2 &_c0, const vec2 &_c1) : c0(_c0), c1(_c1)
{
}


int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
{
mat22 temp(1,2,3,4); //почему не происходит инициализация????
mat22 temp1(vec2(1,2), vec2(3,4)); //а здесь всё нормально инициализируется!!!
return 0;
}

Почему не происходит инициализация? Если же занести инициализацию в блок конструктора, то всё становится как надо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.