Страниц: [1]
  Печать  
Автор Тема: Немного непоняток с наследованием классов  (Прочитано 4002 раз)
Fregl
Sr. Member
****
Offline Offline

Сообщений: 396


Просмотр профиля
« : Октября 20, 2008, 03:26:24 pm »

Добрый день.
Давно не приходилось работать с наследованием классов, но вот столкнулся с проблемой, которую хотелось бы как то решить или понять где я ошибаюсь.
Есть два класса, CSocket - базовый класс для сокетов и CPCPSocket - уже реализация клиента tcp.В базовом классе я определил 2 функции Receive & Send - получить/отправить данные - по сути вызывается recv/send и возвращается количество отправленных/полученных данных.
В унаследованном классе клиента я переопеределяю эти функции, в которые я уже добавляю разного рода проверки и т.п.а уж потом делаю чтение/запись в сокет.
Так вот, интересно получается, что когда я вызываю методы класса клиента, на самом деле вызываются методы базового класса. Хотя в хедерах я объявил и у того и у того класса эти методы, почему то вызываются методы чтения/записи базового класса, в котором никаких проверок нет и прога вылетает если сокет не подсоединен к серверу.
Записан
Fregl
Sr. Member
****
Offline Offline

Сообщений: 396


Просмотр профиля
« Ответ #1 : Октября 20, 2008, 03:27:36 pm »

проверку в базовый класс не хочу вводить, так как на его основе думаю еще сделать класс сервера, механизм которого немного отличается от клиента
Записан
Fregl
Sr. Member
****
Offline Offline

Сообщений: 396


Просмотр профиля
« Ответ #2 : Октября 20, 2008, 03:31:28 pm »

кажется я понял в чем ошибся,
надо было объявить CSocket как абстрактный, потому что я делал ссылку на базовый объект, хотя потом обращался к нему как к клиенту...
Записан
Fregl
Sr. Member
****
Offline Offline

Сообщений: 396


Просмотр профиля
« Ответ #3 : Октября 20, 2008, 03:32:11 pm »

как удалить эту тему ?
поспешил немного
Записан
Страниц: [1]
  Печать  
 
Перейти в: