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

Передача дефолтных параметров - C++

Восстановить пароль Регистрация
 
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,771
Записей в блоге: 1
20.12.2013, 16:01     Передача дефолтных параметров #1
Объясню проблему на примере:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class TMyControl
{
public:
        TMyControl(int param1 = 100, int param2 = 150)
        {
        }
};
 
class TMyWrapper
{
public:
        // в данном случае пришлось скопировать дефолтные значения из конструктора TMyControl
        // что нужно сделать, чтобы этого не делать
        // нужно что-то типа этого:
        // TMyWrapper(int param1 = default, int param2 = default)
        TMyWrapper(int param1 = 100, int param2 = 150)
        {
                control = new TMyControl(param1, param2);
        }
protected:
        TMyControl *control;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2013, 16:01     Передача дефолтных параметров
Посмотрите здесь:

передача параметров по ссылке C++
C++ Передача параметров в функцию
C++ передача параметров по ссылке
C++ Передача параметров
C++ Передача параметров в программу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
20.12.2013, 16:08     Передача дефолтных параметров #2
определить default чтоб он был виден обоим классам и использовать его, но ясно понятно что оно будет всегда одно
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,771
Записей в блоге: 1
20.12.2013, 16:29  [ТС]     Передача дефолтных параметров #3
Цитата Сообщение от Кудаив Посмотреть сообщение
определить default чтоб он был виден обоим классам и использовать его, но ясно понятно что оно будет всегда одно
как?

вообще, как я понял, решение моей проблемы реализовано в C++11

Добавлено через 15 минут
Цитата Сообщение от Кудаив Посмотреть сообщение
определить default чтоб он был виден обоим классам и использовать его, но ясно понятно что оно будет всегда одно
так? так как-то непривычно из-за namespace
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace ControlNameSpace
{
        int g_param1 = 100;
        int g_param2 = 150;
 
        class TMyControl
        {
        public:
                TMyControl(int param1 = g_param1, int param2 = g_param2)
                {
                }
        };
 
        class TMyWrapper
        {
        public:
                // Гў Г¤Г*Г*Г*îì ñëó÷Г*ГҐ ïðèøëîñü ñêîïèðîâГ*ГІГј äåôîëòГ*ûå Г§Г*Г*Г·ГҐГ*ГЁГї ГЁГ§ ГЄГ®Г*ñòðóêòîðГ* TMyControl
                // Г·ГІГ® Г*ГіГ¦Г*Г® ñäåëГ*ГІГј, ÷òîáû ýòîãî Г*ГҐ äåëГ*ГІГј
                TMyWrapper(int param1 = g_param1, int param2 = g_param2)
                {
                        control = new TMyControl(param1, param2);
                }
        protected:
                TMyControl *control;
        };
}
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
20.12.2013, 16:40     Передача дефолтных параметров #4
А константами их нельзя заделать?
C++
1
2
#define G_PARAM1 100
#define G_PARAM2 150
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,771
Записей в блоге: 1
20.12.2013, 17:05  [ТС]     Передача дефолтных параметров #5
Цитата Сообщение от Arigato_RU Посмотреть сообщение
#define G_PARAM1 100
#define G_PARAM2 150
Ненадежно, решил все же остановиться с использованием namespace
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
20.12.2013, 17:46     Передача дефолтных параметров #6
kzru_hunter, все равно константами объяви
Yandex
Объявления
20.12.2013, 17:46     Передача дефолтных параметров
Ответ Создать тему
Опции темы

Текущее время: 07:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru