Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Как заполнить объект структуры в аргументах функции по умолчанию?

#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)){ ....... }

Комментариев нет:

Отправить комментарий