> то все нормально. Это связанно с тем что "на лету" созданный экземпляр
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