Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

перевантаження операцій

38K
10 мая 2008 года
meloman
5 / / 10.05.2008
перевантаження операції "+=","*="!
ось код моєї програми :class HugeInt
{
protected:
unsigned int count;
public:
HugeInt() :count()
{}
HugeInt ( int c):count( c )
{}
unsigned int get_count() const
{return count;}
HugeInt& operator+=(HugeInt& a)
{
return HugeInt(a+=count);
}
};
//////////////////////////////////////////////////////////
class CountDn : public HugeInt
{
public:
CountDn():HugeInt()
{}
CountDn (int c):HugeInt(c)
{}
CountDn& operator*=(CountDn& b)
{
return CountDn(b*=count);
}
};
////////////////////////////////////////////////////////
int main ()
{
CountDn *c1;
CountDn *c2;
c1=(CountDn*)malloc(sizeof(CountDn));
c2=(CountDn*)malloc(sizeof(CountDn));
//CountDn c1(256);
//CountDn c2(256);
cout<<"Enter first member fot *= "<<endl; cin>>c1;
cout<<"Enter second member for *= "<<endl; cin>>c2;
c1*=c2;
cout<<"c1"<<c1.get_count()<<endl;
HugeInt *c3;
HugeInt *c4;
c3=(HugeInt*)malloc(sizeof(HugeInt));
c4=(HugeInt*)malloc(sizeof(HugeInt));
//HugeInt c3(256);
//HugeInt c4(256);
cout<<"Enter first member fot += "<<endl; cin>>c3;
cout<<"Enter second member for += "<<endl;cin>>c4;
c3+=c4;
cout<<"c3"<<c3.get_count();
getch ();
return 0;
}
ось що вибиває:binary '+=' : no operator defined which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
9.3K
10 мая 2008 года
iridum
175 / / 26.08.2007
Попробуй
 
Код:
HugeInt& operator+=(HugeInt& a)

поменять на
 
Код:
HugeInt& operator+=(const HugeInt& a)
562
10 мая 2008 года
tarekon
175 / / 19.08.2003
А это вообще как работать должно? Тут же не объекты используются, а указатели. Для них переопределенные операторы вызваться не будут. Чтобы вызывались, надо использовать непосредственно объекты. Но тогда перестанет работать cin/cout. Чтоб заработал, надо будет задать операторы работы с потоком, например
 
Код:
istream& operator>> ( istream& is, CountDn& dt )


P.S. Пишите по-русски, пожалуйста. Технические слова понятны только из контекста.
38K
25 мая 2008 года
meloman
5 / / 10.05.2008
усім дякую що допомогли,все зробив!все працює!:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог