Russian Qt Forum
Ноябрь 23, 2024, 15:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: С++ 11, список инициализации  (Прочитано 3074 раз)
Disa
Гость
« : Январь 30, 2013, 11:52 »

Наткнулся тут на стекофервлове:

Код
C++ (Qt)
struct Base { };
 
struct Class : Base
{
   int mem{ 0 };  // init non-static data member
 
   Class(int i)
   : Base{}   // init base class
   , mem{i}   // init member
   {
     int j{i};   // init local var
 
     int k = int{0};  // init temporary
 
     f( { 1 } );  // init function arg
 
     int* p = new int{1};  // new init
 
     // int k(int());  // most vexing parse, declares function
     int k{ int{} };   // ok, declares variable
 
     int i[4]{ 1,2,3,4 };   // init array
   }
 
   Class f(int i)
   {
     return { i };   // init return value
   }
};
 
Class c{1};   // init global var

Больше всего заинтересовала предпоследняя запись:

Код
C++ (Qt)
Class f(int i) {
     return { i };   // init return value
   }
 

Вопрос - зачем может понадобится вернуть значение, которое я только что передал при инициализации?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Январь 30, 2013, 12:57 »

Вопрос - зачем может понадобится вернуть значение, которое я только что передал при инициализации?
Передали int а вернули-то уже класс. Хотя конечно все равно извращение  Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Январь 30, 2013, 13:38 »

Не уверен, но по идее, такое должно работать:
Код:
QStringList getSuffixes()
{
    return { "jpg", "jpeg" };
}
Записан
Disa
Гость
« Ответ #3 : Февраль 05, 2013, 23:47 »

Ну в общем это какой-то "своеобразный" вариант синт. сахара?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.151 секунд. Запросов: 22.