Этот код пишет: d
template<char ch> class My
{
public:
My()
{
cout << ch;
}
};
int main()
{
My<'d'> my;
return 0;
}
А этот нет
template<char ch> class My
{
public:
My()
{
cout << ch;
}
};
int main()
{
My<'d'> my(); // скобки
return 0;
}
Почему?
Re: не вызывется констуктор
Здравствуйте, Hard_Club, Вы писали:
H_C>Почему?
потому что второе — декларация функции.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: не вызывется констуктор
H_C>>Почему?
C>Most vexing parse же. Пользуйтесь uniform initialization из C++11, если так нравится расставлять скобочки при объявлении переменных.
Так в таком случае она будет работать как агрератная инициализация, т.е. подставлять значения в соответствующие поля вместо вызова конструктора.
Re: не вызывется констуктор
Здравствуйте, Hard_Club, Вы писали:
H_C>Почему?
Most vexing parse же. Пользуйтесь
uniform initialization из C++11, если так нравится расставлять скобочки при объявлении переменных.
Re[3]: не вызывется констуктор
Здравствуйте, Hard_Club, Вы писали:
H_C>Так в таком случае она будет работать как агрератная инициализация
в с++03, а вам говорят про с++11.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[4]: не вызывется констуктор
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Hard_Club, Вы писали:
H_C>>Так в таком случае она будет работать как агрератная инициализация
X>в с++03, а вам говорят про с++11.
а в С++11 будет вызываться конструктор?
Re[5]: не вызывется констуктор
Здравствуйте, Hard_Club, Вы писали:
H_C>а в С++11 будет вызываться конструктор?
и снова, зачем переспрашивать?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[6]: не вызывется констуктор
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Hard_Club, Вы писали:
H_C>>а в С++11 будет вызываться конструктор?
X>и снова, зачем переспрашивать?
чтобы понять, что правильно понял
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить