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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Exeil
5 / 5 / 1
Регистрация: 06.12.2010
Сообщений: 50
#1

Передача в функцию обьекта - C++

24.09.2011, 21:37. Просмотров 584. Ответов 4
Метки нет (Все метки)

Всем привет. В интернете ничего не нашел по этому поводу:

Я делаю шашки и у меня есть класс USER и два производных COMPUTER и GAMER. Каждый из производных перегружают функцию Call_Step() у базового.
Нужно после выбора первого и второго игрока передать в функцию два объекта комбинации могут быть разными COMPUTER + GAMER или GAMER + GAMER и т.д. интерфейсы у которых одинаковые. Можно ли как нибудь передавать в функцию как USER а в функции использовать её как GAMER? Это было бы очень удобно.

Может это и глупый вопрос, заранее спс.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2011, 21:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача в функцию обьекта (C++):

Передача свойств обьекта в функцию openGL - C++
Здравствуйте уважаемые форумчане..Пришел к вам со следующей нуждой: У меня есть класс тайловой карты. При создании карты...

Странный порядок вызова конструкторов и передача временного обьекта в функцию в качестве неконстантной ссылки - C++
Есть код //g++ 5.4.0 #include <iostream> struct foo { foo(int){std::cout << "int ctor" << std::endl;} foo()...

Передача обьекта в функию - C++
Изучаю прогу в универе, понадобилось сделать обьект как аргумент функции.ООП ещё не изучали.Как это сделать можно?Я чисто интуитивно...

Исключительный доступ обьекта к полям другого обьекта avr/c++ - C++
исключительный доступ обьекта к полям другого обьекта avr/c++ добрый день есть два обьекта Data & Math - Data - элемент...

Создать функцию вывода, в которую можно передать обьект, и вывести имя обьекта и все его поля - C++
Создать функцию вывода, в которую можно передать обьект, и вывести имя обьекта и все его поля. Сколько голову не ломал, сколько не...

Передача указателя на шаблонную функцию в другую функцию - C++
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает итераторы для диапазона элементов, указатель...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
24.09.2011, 21:53 #2
Может я не правильно понял вопрос, но приняв ссылку на родительский класс (которая на самом деле может указывать на любой класс наследник) вы можете вызывать любую вирутальную функцию и она будет вызываться (за счёт виртуальной таблицы) для того наследника, на которого указывает эта ссылка.
Те укажите что функция принимает ссылку на USER,а потом в ней вызывайте нужную виртуальную функцию и в зависимости от того на что указывает USER будет вызываться либо функция COMPUTER либо GAMER.
1
Exeil
5 / 5 / 1
Регистрация: 06.12.2010
Сообщений: 50
25.09.2011, 19:46  [ТС] #3
увы но после передачи по ссылке в функцию потомка он типизируется в базовый класс и используется не перегруженный потомком метод а базовый
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2011, 19:48 #4
потому что вы используете не виртуальные методы
1
Exeil
5 / 5 / 1
Регистрация: 06.12.2010
Сообщений: 50
25.09.2011, 19:49  [ТС] #5
хм обязательно почитаю про это, надеюсь поможет, спасибо =)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2011, 19:49
Привет! Вот еще темы с ответами:

Передача массива в функцию используя указатель на функцию - C++
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать функцию ввода масива в функцию его обработки...

Передача объекта в функцию или функцию друга - C++
Здравствуйте, уважаемые программисты :) К примеру есть такой код. #include <iostream> using namespace std; class My_Class1 { ...

Передача двухмерного массива из функцию в функцию - C++
Допустим у меня есть функция, в которой "генерируется" массив. Но нужно его передать в другую функцию, которая его выведет на экран. ...

Передача в функцию - C++
компилятор ругается на int sumcolumn (int **a, int n) sumcolumn(a,m) почему не могу передать массив i*1, таким образом? ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.09.2011, 19:49
Ответ Создать тему
Опции темы

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