Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 53
1

Универсальный вызов метода через указатель на объект

15.07.2017, 01:13. Показов 1179. Ответов 5
Метки нет (Все метки)

Никак не могу найти универсальную конструкцию, которая позволяла бы вызывать любой метод класс, с любыми параметрами через указатель на объект.
P.s. когда то раньше нашёл решение данной проблемы в одну строчку, с помощью то ли typedef, то ли шаблонов.

Как пример, код который работал с учётом конструкции, которую я ищю:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test
{
private:
   int id;
   char n;
public:
   Test();
   int Create(int id),
        SetChar(char n);
}
 
Test* pointer = new Test();
pointer->Create(5);
pointer->SetChar('q');
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2017, 01:13
Ответы с готовыми решениями:

Вызов метода потомка через указатель на родителя
Всем доброго времени суток, никак не придумаю, как провернуть такое: Пишу простенькую игру на...

Вызов метода класса через указатель на ноль
Почему в таком коде не происходит ошибка при вызове метода класса, а уже только в самом методе:...

Вызов метода производного класса через указатель на базовый класс
Всем привет ! Подскажите почему , при выполнении строки 45 я получаю ошибку ? А именно при...

Указатель типа void. Использование косвенного связывания через универсальный указатель
Необходимо использовать косвенного связывания через универсальный указатель, примерный вид: struct...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
5
Рэмбо комнатный
102 / 102 / 99
Регистрация: 05.03.2017
Сообщений: 507
15.07.2017, 08:15 2
Цитата Сообщение от buridan Посмотреть сообщение
Test* pointer = new Test();
C++
1
Test* pointer = new Test;
0
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 53
15.07.2017, 09:33  [ТС] 3
Извините, это я переписал не правильно, в самом коде этот момент также написан.

Добавлено через 13 минут
Решил проблему, идиотская ошибка была.
13, 14 строки:
C++
1
2
3
4
int k = pointer->Create(5);
int c = pointer->SetChar('q');
 
Т.к. методы возвращают значение int
0
С чаем беда...
Эксперт CЭксперт С++
8630 / 4306 / 1184
Регистрация: 18.10.2014
Сообщений: 9,352
15.07.2017, 09:41 4
Лучший ответ Сообщение было отмечено buridan как решение

Решение

Цитата Сообщение от GeFacle Посмотреть сообщение
C++
1
Test* pointer = new Test;
И в чем тут суть?

Цитата Сообщение от buridan Посмотреть сообщение
Решил проблему, идиотская ошибка была.
13, 14 строки:
C++
1
2
3
4
int k = pointer->Create(5);
int c = pointer->SetChar('q');
 
Т.к. методы возвращают значение int
Это чушь. Ошибка не в том, что "методы возвращают значение int", а в том, что код в С++ следует писать не тупо посреди файла, а внутри функций.

За пределами функций можно писать только объявления. Своими int вы превратили ваш код в объявления, но осмысленнее от этого он не стал.
0
Любитель чаепитий
3543 / 1653 / 508
Регистрация: 24.08.2014
Сообщений: 5,614
Записей в блоге: 1
15.07.2017, 09:45 5
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
За пределами функций можно писать только объявления.
но существуют хаки. )
Вызов функции в глобальном пространстве
0
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 53
15.07.2017, 09:49  [ТС] 6
На самом деле так и есть)) Просто хотел протестировать работоспособность методов и вбухал код в самом верху, а не в функциях, ошибка идиотская)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2017, 09:49

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Специализация и обобщение в С++ через универсальный указатель
Здравствуйте, уважаемые участники форума! Возникла следующая проблема. Необходимо написать...

вызов метода у указателя на указатель на класс
Доброго времени суток! Простите за, возможно, глупый вопрос и/или его неточную формулировку, но...

Указатель на объект в качестве параметра вызываемого метода класса
Код по сути //Interface.cpp #include "Interface.h" void Interface::input() { Teplitsa *kaka;...

Универсальный указатель или универсальный скалярный тип
Здравствуйте! Помогите, пожалуйста написать программу: требуется написать универсальный скалярный...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.