Параметр по умолчанию для ссылки на список - PullRequest
9 голосов
/ 29 ноября 2010

Как в C ++ указать значение по умолчанию для ссылки на список в функции?

void fun(
  std::list<My_Object *> &the_list,
  int n = 4
) 

Ответы [ 2 ]

7 голосов
/ 29 ноября 2010

если это простая ссылка, единственное, что вы используете по умолчанию, это допустимое значение lvalue, которое, вероятно, недоступно. Но если это ссылка на const, вы можете использовать по умолчанию пустой список, например:

void fun(
  std::list<My_Object *> const & the_list = std::list<My_Object *>(),
  int n = 4
) 

Если у вас есть список с именем a, который доступен на сайте декларации, то вот так

void fun(
      std::list<My_Object *> & the_list = a,
      int n = 4
    ) 

но будьте осторожны, чтобы список a оставался "живым" при вызове функции

5 голосов
/ 29 ноября 2010

В C ++, как бы я указал значение по умолчанию для ссылки на список в функции?

Я бы не стал, в вашем случае.Либо перегрузите функцию , чтобы ее можно было вызывать без списка, либо примите аргумент для указателя , чтобы пользователи могли передатьNULL указатель.

Я бы предпочел перегрузку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...