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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 13:19   #51
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Это проект учебный, т.е. указатели на члены классов обязательно заводить (дабы научиться работать с ними). Или Вы так просто спроектировали класс и это вовсе не обязательно? А то может ну их в баню и классы перепроектировать красивее и правильнее?
Кстати, зря класс interface назвали. Иногда прописывают макрос:
Код:
#define interface struct
так что может когда-нибудь где-нибудь всплыть проблемка из-за этого
pu4koff вне форума Ответить с цитированием
Старый 24.04.2009, 13:24   #52
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Код:
Нельзя так создавать объекты в классе. Все эти new засуньте в конструктор (и удаление в деструктор соответственно) или просто:
Код:


interface func;
interface jacobian;
sortie print;

и тогда вё само будет создаватсья и уничтожаться, но придется в коде поменять -> на . )
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 13:29   #53
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Этот проект учебный, который уже горит по датам, поэтому нервишки шалят (я заблакирована по указателям 2 день, а надо еше массу всего сделать). С классами обязательно работать, так как они имеут наследственный характер.Помимо класса интерфаце, есть 6 классов и все взаимосвязано.
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 14:06   #54
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Ну просто может виртуальные функции можно использовать вместо указателей на методы класса. Проще и краше будет
Создаёте интерфейс для классов:
Код:
// интерфейс для классов, реализующих некий функционал
class MyInterface
{
public:
  virtual ~MyInterface() {}; // деструктор виртуальный для базовых классов обязателен
public:
  virtual void calc(int &i) = 0;
};
и наследуетесь от него, реализуя функцию calc соответствующим образом
Код:
// инкремент
class MyIncrement: public MyInterface
{
public:
  void calc(int &i)
  {
    ++i;
  }
};
// декремент
class MyDecrement: public MyInterface
{
public:
  void calc(int &i)
  {
    --i;
  }
};
Потом создаёте класс-контроллер (ну типа вашего newt)
Код:
class MyController
{
private:
  MyInterface *m_object;
public:
  MyController()
    :m_object(NULL)
  {

  }
public:
  MyInterface* getObject()
  {
    return m_object;
  }
  void setObject(MyInterface *new_object)
  {
    m_object = new_object;
  }
public:
  void calc(int &i)
  {
    if (m_object) // если указатель на объект указан
    {
      m_object->calc(i);
    }
  }
}
И в программе как-то так:
Код:
int main()
{
  MyController c;
  MyIncrement inc;
  MyDecrement dec;

  int i = 10;
  c.setObject(&inc); // передаём инкремент
  c.calc(i); // ++i
  c.setObject(&dec); // передаём декремент
  c.calc(i); // --i
}
Никаких ужасных указателей на методы нет и достаточно симпотишо (по крайней мере мне нравится). Ну это конечно зависит от задачи что там за классы и как всё закручено у Вас
pu4koff вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делает команда Run.Detach From Program? JY_ Общие вопросы Delphi 3 20.01.2009 13:58
program Project1; необходимо перенести из Pascal в Delphi Toxass Общие вопросы Delphi 22 24.11.2008 08:53
Install (Update program) MAcK Общие вопросы .NET 0 23.10.2008 11:00
Узнать Received XAOC-forever Работа с сетью в Delphi 0 30.09.2008 14:49
Copy Program с изменением атрибутов Трофимов Андрей Паскаль, Turbo Pascal, PascalABC.NET 3 04.07.2007 20:10