Matrix4fT a = { 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f };
инициализация union или передача неименованного массива
вопрос 0:
есть тип:
typedef union Tuple4f_t
{
struct
{
double X, Y, Z, W;
} s;
double T[4];
} Tuple4fT;
в некотором классе я задаю переменную данного типа...как мне провести ее инициализацию в конструкторе? (вариант for(i=...) отпадает)
если это невозможно..то - вопрос 1:
создается класс...в нем есть массив...соответсвенно его надо проинииализировать...могу ли я в конструктор класса отправить не именованный массив ?
типа такого
class TypeClass1
{
public:
TypeClass1(void){};
~TypeClass1(void){];
TypeClass1(int *mas){}
private:
int b[5];
}
TypeClass a ( {1,2,3,4,5} );
Спасибо заранее
Цитата: artemkaint
в некотором классе я задаю переменную данного типа...как мне провести ее инициализацию в конструкторе? (вариант for(i=...) отпадает)
Смотря чем она должна быть проинициализирована. Если нулями, то можно ZeroMemory или memset.
Цитата: artemkaint
создается класс...в нем есть массив...соответсвенно его надо проинииализировать...могу ли я в конструктор класса отправить не именованный массив ?
Подобная тема уже поднималась, попробуйте поискать. Сейчас если сам найду, выложу ссылку.
Matrix4fT a = { 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f };
надо как то умудриться и в классе так сделать
на счет массива действительно нашел...жалко...
Ну попробуй создать в struct'e конструктор, в котором опишешь инициализацию. и потом если пишешь на C++ вызови new
в конструкторе объявляете локальную переменную и инициализируете ее чем надо, например
Код:
А потом той переменной этого же типа, которая является членом класса, присваиваете (или memcpy) эту объявленную локальную переменную (в нашем примере a).
да я так тоже сделал..но что-то не очень мне это понравилось...хотел красиво....ясно спасибо - не красиво зато реализуемо
Цитата: artemkaint
если это невозможно..то - вопрос 1:
создается класс...в нем есть массив...соответсвенно его надо проинииализировать...могу ли я в конструктор класса отправить не именованный массив ?
создается класс...в нем есть массив...соответсвенно его надо проинииализировать...могу ли я в конструктор класса отправить не именованный массив ?
Не для практического применения, а в качестве юмора:
Код:
#include <string>
#include <iostream>
using namespace std;
class A
{
public:
string s;
A(const char *pcs):s(pcs, pcs + 4)
{
}
};
int main()
{
A a0("\x00\x01\x7F\x04");
A a1("\x06\x07\x08\x09");
cout << (int)a0.s[2] << endl;
cout << (int)a1.s[1] << endl;
return 0;
}
#include <iostream>
using namespace std;
class A
{
public:
string s;
A(const char *pcs):s(pcs, pcs + 4)
{
}
};
int main()
{
A a0("\x00\x01\x7F\x04");
A a1("\x06\x07\x08\x09");
cout << (int)a0.s[2] << endl;
cout << (int)a1.s[1] << endl;
return 0;
}
вот класс, в нем эээ... ну не совсем массив, но что-то его заменяющее, ну и нигде нет имени массива, которым инициализирована строка :)