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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 21:25   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию Квадрат - перегрузка операторов

Написал по заданию программу и выдает 1 ошибку, разъясните как ее исправить. Покажите пожалуйста как правильно в подправленном коде уже.

Задание:
1. Квадрат: координаты вершин, конструктор по умолчанию, конструктор с параметрами, конструктор копирования, методы вычисления площади и периметра, метод выведения квадрата, перегрузки операторов деления, присвоения, добавления

2.Описать класс, три объекти K1, K2, K3, используя разные конструкторы; "увеличить" на 5 единиц объект К3; "разделить" объект К2 на объект К3 и результат "поместить" к объекту К1; результат действий вывести на экран

Ошибка:
Цитата:
error C2676: binary '*' : 'Square' does not define this operator or a conversion to a type acceptable to the predefined operator
Код программы:
Код:
//square.h
class Square
{
private:
	int x1;
	int x2;
	
public:
	Square();
	Square(int dx1, int dx2);
	Square(const Square &);
	~Square();

	Square operator+(const Square& b);
	Square operator%(const Square& b);
        Square operator=(const Square& b);

	int AreaOfSquare();
	int Perimeter();
	void Coordinate();
};

//.cpp
#include "stdafx.h"
#include <iostream>
#include "math.h"
#include "square.h"
using namespace std;

Square::Square()
{
	x1 = 0;
	x2 = 0;
}

Square::~Square(){}

Square::Square(int dx1, int dx2)
{
	x1 = dx1;
	x2 = dx2;
}

Square::Square(const Square &O)
{
	x1 = O.x1;
	x2 = O.x2;
}

int Square::AreaOfSquare()
{
	int S;
	S = x1*x2;
	return S;
}

int Square::Perimeter()
{
	int P;
	P = 4*x2;
	return P;
}

void Square::Coordinate()
{
	cout << "Coordinatu kvadrata: " << x1 <<' '<< x2 <<'\n';
	cout << "Perimeter: " << Perimeter() << "\n";
	cout << "Ploschad:  " << AreaOfSquare() << "\n";
}

Square Square::operator+(const Square &b)
{
	Square obj(*this);
	obj.x1 +=b.x1;
	obj.x2 +=b.x2;
	return obj;
}

Square Square::operator%(const Square &b)
{
	Square obj(*this);
	obj.x1 %=b.x1;
	obj.x2 %=b.x2;
	return obj;
}

Square Square::operator=(const Square &b)
{
	Square obj(*this);
	obj.x1 =b.x1;
	obj.x2 =b.x2;
	return obj;
}

//main.cpp
#include "stdafx.h"
#include "square.h"
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
	Square K2(3,4);
	Square K3(K2);
	Square K1 = ((K3*K3*K3*K3*K3)/K2);

	K2.Coordinate();
	cout << "/n";
	cout << " object K1: " << K1.AreaOfSquare() << "\n";
	return 0;
}

Последний раз редактировалось ArniLand; 30.03.2010 в 21:59.
ArniLand вне форума Ответить с цитированием
Старый 30.03.2010, 23:33   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Square K1 = ((K3*K3*K3*K3*K3)/K2);
ну а где перегрузка оператора * и / ?
counter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перезагрузка операторов Maxim_Burea Помощь студентам 5 23.09.2009 15:30
Перезагрузка операторов в C++ (помогите плиз) 3s3e3r3e3g3a3 Фриланс 7 22.09.2009 21:51
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15
Выключение и перезагрузка Патрон Win Api 8 26.03.2008 16:24
Перезагрузка LAFam Win Api 13 09.12.2007 09:15