Форум программистов, компьютерный форум CyberForum.ru

Опциональный ссылочный аргумент функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить номер максимальной по величине цифры http://www.cyberforum.ru/cpp-beginners/thread1103215.html
помогите написать 2 программы на с++ (если можно попроще) 1)Определить номер максимальной по величине цифры. 2)Определить, является ли число палиндромом.
C++ Ошибка с типами в шаблоне функции 1>c:\users\nano\desktop\visual studio\homework\homework\homework.cpp(10): error C2563: несоответствие в списке формальных параметров 1>c:\users\nano\desktop\visual studio\homework\homework\homework.cpp(12): error C2563: несоответствие в списке формальных параметров 1>c:\users\nano\desktop\visual studio\homework\homework\homework.cpp(14): error C2065: chek: необъявленный идентификатор http://www.cyberforum.ru/cpp-beginners/thread1103198.html
C++ Подключение SDL 2.0 MinGW
Доброго времени суток. Закинул все файлы SDL по своим местам, но при компиляции через командную строку выводится следующее: g++ -Wall -static -o sdltest.exe sdltest.cxx -lmingw32 -lSDL2main -lSDL2 C:\DOCUME~1\FlGHTER\LOCALS~1\Temp\ccKLWAw3.o:sdltest.cxx:(.text+0xe): undefined reference to `SDL_Init' C:\DOCUME~1\FlGHTER\LOCALS~1\Temp\ccKLWAw3.o:sdltest.cxx:(.text+0x13): undefined reference to...
C++ Назначение действия на флаг AppendMenu
Всю ночь пыталась сделать свое пианинко , но все уперлось в AppendMenu :( Делала по туторам, т.к. еще только осваиваю cpp,хотя вроде как получается! Проблема моя в следующем. На сколько я поняла, AppendMenu создает флаги и если на кнопки и button я могу забиндить, то флаги не получается - просто не знаю как. Пыталась, как и с button сделать типа если клавиша проигрывается вот так...
C++ Не обязательно разыменовывать указатель на функцию при вызове? http://www.cyberforum.ru/cpp-beginners/thread1103170.html
Здравствуйте. Вот такой вопрос. void estimate(int lines, double (*pf) (int)); //прототип // ... void estimate(int lines, double (*pf) (int)) { using namespace std; cout << lines << " lines will take "; cout << (*pf)(lines) << " hour(s)\n";
C++ C++ SDL Всем привет! Работал я значи в SDL, а потом что-то нажалось ил не нажалось и вообщем теперь, при компиляции любого(работающего, подходящего для SDL кода) мне Code::Blocks выдаёт такое уведомление: Если я нажимаю YES, он выдаёт мне: mingw32-g++.exe -LD:\SDL-1.2.15\lib -o bin\Debug\WORKS.exe obj\Debug\main.o -mingw32 -lSDLmain -SDL -mwindows mingw32-g++.exe: error: unrecognized command... подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.02.2014, 11:56     Опциональный ссылочный аргумент функции
igorrr37, всё-таки речь шла о неконстантной ссылке. Тем более, если в 12 строке будет:
C++
1
const int num
, то получите UB из-за const_cast.
Если нужно просто сделать ссылочное значение по умолчанию, достаточно такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int i = 42;
 
void Func(int& num = i)
{
    std::cout << "Func: " << num << '\n';
}
 
int main()
{
    int num = 390;
    Func(num);
    Func();
    return 0;
}
http://ideone.com/qjbjEj
Но, как уже сказал 0x10 ссылка должна быть инициализирована, т.е. указывать на объект.

А если хочется сделать код максимально похожий на код ТС, то можно предложить такой вариант:
C++
1
2
3
4
5
6
7
8
int i = 0;
void someFoo(int important, int &additional = i) 
{
    if (additional) 
    {
        
    }
}
Однако, здесь не стоит путать нулевое значение целого аргумента и отсутствие значения (как можно было бы интерпретировать с nullptr).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru