Как инициализировать struct-type в списке инициализации? - PullRequest
0 голосов
/ 10 мая 2010

Как я могу инициализировать структуру в списке конструкторов?

Скажи:

struct St{int x, y};

class Foo
{
public:
Foo(int a = 0, int b = 0) : /*here initilise st_foo out of a and b*/
{}

private:
const St st_foo;
};

Ответы [ 2 ]

3 голосов
/ 10 мая 2010

Вам необходимо предоставить конструктор для struct St, который принимает 2 int параметров и присваивает их x и y. Затем вызовите его в вашем списке инициализации Foo.

Помните: структуры - это то же самое, что и классы, за исключением правил видимости по умолчанию (для структур по умолчанию используется public.

0 голосов
/ 12 мая 2010

Здесь - это ответ, если вы хотите нулевую инициализацию для структуры (решение для c ++ 0x также указано для общего случая). Достаточно поставить пустую пару скобок после имени участника:

Foo() : st_foo()
...