Следующий пост -

Класс RINT

Рубрика: C++, Дата: 21 March, 2013, Автор:
Tags:

Определите класс RINT, который ведет себя как INT, за исключением того, что допустимыми операциями являются лишь +, – (унарные и бинарные), *, / и %. Подсказка не определяйте RINT::operator int().

Ну что поехали просто тупо перегрузим все операторы.

файл RINT.h:

//ob69vlenie RINT
#ifndef RINT_H
#define RINT_H

class RINT
{
public:
	int val;
	//konctryktor po ymolchaniyu
	RINT():val(0){}
	//konctryktor kopii
	RINT(RINT& a):val(a.val){}
	//konctryktor preobrazovani9
	RINT(int a):val(a){}
	
	//ynarnue +, -.
	RINT& operator+()
	{
		//                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             cout <<"operator+ yn"<<endl;
		if(val<0)
			val= -val;
			
		return *this;
	}
	RINT& operator-()
	{
		//cout <<"operator- yn"<<endl;
		if(val>0)
			val=-val;
			
		return *this;
	}
};

//binarnue
int operator+(const RINT& a, const RINT& b);
int operator-(const RINT& a, const RINT& b);
int operator*(const RINT& a, const RINT& b);
int operator/(const RINT& a, const RINT& b);
int operator%(const RINT& a, const RINT& b);

#endif

файл RINT.cpp:

//opredelenie klacca RINT


#include "RINT.h"

int operator+(const RINT& a, const RINT& b)
{
	return a.val+b.val;
}
int operator-(const RINT& a, const RINT& b)
{
	return a.val-b.val;
}
int operator*(const RINT& a, const RINT& b)
{
	return a.val*b.val;
}
int operator/(const RINT& a, const RINT& b)
{
	return a.val/b.val;
}
int operator%(const RINT& a, const RINT& b)
{
	return a.val%b.val;
}

и сам файл программы br.cpp:

//opredelite klacc RINT
#include <iostream>
using std::cout;
using std::endl;

#include "RINT.cpp"

int main()
{
	RINT a(-4);
	cout <<a.val<<endl;
	+a;
	cout <<a.val<<endl;
	-a;
	cout <<a.val<<endl;
	-a;
	cout <<a.val<<endl;
	RINT b(5);
	cout <<b.val<<endl;
	cout <<a+b<<endl;
	cout <<a-b<<endl;
	cout <<a*b<<endl;
	cout <<b/a<<endl;
	cout <<a%b<<endl;
	cout <<b%a<<endl;
	
	return 0;
}

Да как видим я, что то научился делать. Сам удивляюсь. Ничож не выходило, а щас легко перегрузил операторы, вообще даже не напрягаясь. Скажу вам так ребята тренируйтесь каждый день тренируйтесь, хотя бы по одной задачке решайте.

rss