Re: Передача параметра как ссылки в классе
От: Виталий Заболотный  
Дата: 27.05.03 20:25
Оценка:
> то все нормально. Это связанно с тем что "на лету" созданный экземпляр
number может не дожить пока его обработает onChange ? Возможно ли
както добиться первого варианта использования чтобы не плодить temp
объекты ?

Возможно, используя константные ссылки:

#include <stdio.h>

class number
{
public:
  int num;
  
  number(int i) : num(i) {};
  operator int() const { return num; };
};

class base
{
public:
  virtual void onChange(const number& e) {};
  virtual void onError(const number& e)
  {
    printf("onError: %i\n", (int)e);
  };
};

class child : public base
{
public:
  virtual void onChange(const number& e)
  {
    printf("virtual onChange:\n");
    onError(e);
  };
};

int main()
{
  child qwe;
  qwe.onChange(number(123));
  qwe.onChange(123); // и даже так...:)
  return 0;
}
Posted via RSDN NNTP Server 1.5
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.