#cpp
Хочу создать функцию с аргументами по умолчанию: void MaterialDiffuse(D3DCOLORVALUE Difzf = {1,1,1,0}){ //code } но аргументы по умолчанию не возможно занести в объект структуры D3DCOLORVALUE. Как видно конструктора нет: typedef struct _D3DCOLORVALUE { float r; float g; float b; float a; } D3DCOLORVALUE; Как можно заполнить струтуру в функции? Кто-то ответил, но удалил ответ. Решение такое(кому-нибудь пригодится): const _D3DCOLORVALUE defaultA = {1.0, 1.0, 10}; void MaterialDiffuse(_D3DCOLORVALUE Difzf = defaultA){ //code }
Ответы
Ответ 1
В C++11 можно так: void MaterialDiffuse(D3DCOLORVALUE Difzf = D3DCOLORVALUE{1,1,1,0}){ //code }Ответ 2
А почему бы не написать конструктор(-ы) для этой структуры и далее в параметрах функции: void MaterialDiffuse(D3DCOLORVALUE Difzf = D3DCOLORVALUE (1,1,1,0)){ ....... }
Комментариев нет:
Отправить комментарий