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

Как из константной функции вызвать неконстантную? - C++

Восстановить пароль Регистрация
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
28.01.2014, 22:38     Как из константной функции вызвать неконстантную? #1
Здравствуйте. Появилась необходимость сделать такой вот трюк. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class B
{
    public:
        void f();
};
 
class A
{
    B b;
    
    public:
        void foo() const
        {
            b.f();
        }
};
Добавлено через 19 минут
up...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 22:38     Как из константной функции вызвать неконстантную?
Посмотрите здесь:

C++ Как из обыной функции вызвать функции член класса?
C++ как вызвать Main из другой функции???
C++ Как вызвать из 1 функции параметры другой?
Как вызвать массив из функции? с++ C++
C++ Как вызвать функцию из функции main?
Как вызвать в main данные функции? C++
C++ Беру и спокойно вызываю неконстантную функцию для константного объекта
Как сделать доступным обращение к методу параметра, объявленного константной ссылкой? C++
C++ Вызов не константной функции, изменяющей свойства класса, из константой . Возможно?
C++ Возврат константной ссылки из функции
C++ Как вызвать функцию чужого приложения, как подменить значения аргументов функции?
C++ Как вызвать 3 данные функции?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.01.2014, 22:59     Как из константной функции вызвать неконстантную? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1.
C++
1
2
3
4
5
6
7
8
9
10
class A
{
    mutable B b;
    
    public:
        void foo() const
        {
            b.f();
        }
};
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    B b;
    B& ref;
    
    public:
        A() : ref(b) {}
        void foo() const
        {
            ref.f();
        }
};
3. п.2 только через указатель
4. const_cast
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
28.01.2014, 23:17  [ТС]     Как из константной функции вызвать неконстантную? #3
Jupiter, спасибо, про mutable совсем забыл а второй способ первый раз вижу.
Yandex
Объявления
28.01.2014, 23:17     Как из константной функции вызвать неконстантную?
Ответ Создать тему
Опции темы

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