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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 12:18   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Реализация interface

Подскажите, как реализовывать интерфейс на с++.
На языке Джава это делается так:
Код:

public interface NewInterface {
void privet(int param);


}

class Client implements NewInterface{
      public void privet(int param){
        System.out.println("Привет Мир!");
    }
    public static void main(String[] args) {

  }
}
Syltan вне форума Ответить с цитированием
Старый 15.06.2010, 12:31   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

В С++ нет понятия интерфейса. Его роль может выполнять абстрактный базовый класс, но у вас всеравно должен быть виртуальный деструктор, чтобы правильно освобождать память.
Код:
//абстрактный базовый класс
class Base
{
public:
   Base();
   virtual ~Base();

   virtual void method() = 0; //чисто виртуальная функция
};
И классы, реализующие методы базового
Код:
//класс-потомок
class Concrete : public Base
{
   public:
      Concrete();
      ~Concrete();

      void method(){return;} //реализация виртуальной функции
};
В принципе, так делается интерфейс в С++
MaTBeu вне форума Ответить с цитированием
Старый 15.06.2010, 12:46   #3
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Извиняюсь вы подписали
Код:
  virtual void method() = 0; //чисто виртуальная функция
А какую не чистую можно создать?
Syltan вне форума Ответить с цитированием
Старый 15.06.2010, 12:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А какую не чистую можно создать?
Извини а зачем тебе грязная?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2010, 13:19   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Базовый класс становится абстрактным, если имеет чисто виртуальные функции - то есть функции без реализации. Реализовать их нужно в производных классах.
Простую виртуальную функцию можно создать вот так
Код:
virtual void method() {//реализация}
MaTBeu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация отмены?!?!?!? Xdron Общие вопросы Delphi 6 28.04.2010 18:15
раздел interface . vedro-compota Общие вопросы Delphi 4 24.04.2010 12:33
Реализация класса на С++ danekne Помощь студентам 5 14.01.2010 18:32
Задача в interface среде Delphi akialex Помощь студентам 1 12.12.2009 19:50
Реализация синуса angol Помощь студентам 5 07.11.2008 22:00