Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 15:05   #1
GerNick
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 14
По умолчанию Как вызывать функции одного или др. класса по определённому спецификатору?

/*
Здравствуйте, имею 2 класса. И хотелось бы обращаться к функциям клаасов по кокому-то спецификатору.
Другая функция должна создавать объект допустим с именем MODBUS на основе одного из класса. А в своей функции я дожен вызывать функцию объекта независимо от созданного на основе какого класса.
Надеюсь понятно объяснил. помогите мне пожалуйста
*/

class cMDBS_A
{
public:
cMDBS_A()
{
};
~cMDBS_A()
{
};
unsigned char cnt_buf;
void Data_transport();//
//...
};

class cMDBS_B
{
public:
cMDBS_B()
{
};
~cMDBS_B()
{
};
unsigned char cnt_buf;
void Data_transport();//
//...
};
void cMDBS_A::Data_transport ()
{
int a;
//...
};

void cMDBS_B::Data_transport ()
{
int b;
//...
};


int main()
{
cMDBS_A MODBUS;
//cMDBS_A MODBUS;

MODBUS.Data_transport();//
//необходимо вызывать функцию cMDBS_B::Data_transport() или cMDBS_A::Data_transport()


return 0;
};
GerNick вне форума Ответить с цитированием
Старый 20.12.2010, 15:38   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
MODBUS.Data_transport()
вызовет Data_transport того класса которого типа является MODBUS, или я вопроса не понимаю?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2010, 16:34   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

виртуальные функции для этого и предназначены. кстати, пиши код по-человечески! не нужно ставить точку с запятой после определения функции, отвлекает же, теряется конец объявления класса
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как копировать группу строк из одного листа Excel в другой на VBA или Делфи S_Yevgeniy Помощь студентам 1 26.04.2010 11:07
Как в С# вызывать вторую форму по F1 Linore Общие вопросы .NET 20 15.02.2010 09:35
Необходимо передать переменную из одного класса в другой. scray PHP 4 27.12.2009 13:01
Как сортировать список TListView по определённому столбцу? Никки Общие вопросы Delphi 1 18.12.2007 19:18