Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
#1

Квадрат - перезагрузка операторов - C++

30.03.2010, 21:31. Просмотров 1374. Ответов 4
Метки нет (Все метки)

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

Задание:
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
Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
//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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 21:31     Квадрат - перезагрузка операторов
Посмотрите здесь:

Перезагрузка операторов. - C++
Люди, нид хелп! Пишу модуль для работы с матрицами, template &lt;class T&gt; class cmatrix { T *data; int n, m; ...

перезагрузка операторов - C++
скажите разницу между base operator +(base &amp;o) base &amp;operator +(base &amp;o) и как перезагрузить префиксную форму ++р?

Перезагрузка операторов! - C++
Добрый вечер, умные люди, помогите пожалуйста сделать программу нужно реализовать класс абстрактного типа данных АДТ − стек....

Перезагрузка операторов Помогите - C++
Добрый день...у меня к вам просьба Помогите пожалуйста написать полностью программу с условием: 5. Объявите новый тип данных время....

Глобальная перезагрузка операторов - C++
Есть код: template&lt; class Value &gt; class MyClass { Value value_; }; template&lt; class V &gt;

C++. Перезагрузка операторов (Написать класс Дробь с полями числитель и знаменатель) - C++
2. Написать класс Дробь с полями числитель и знаменатель. Реализовать следующие методы: - Конструктор по умолчанию, конструктор с...

Перезагрузка операторов "неоднозначный operator" - C++
Не знаю в ту ли группу пишу, но все же.... Для моего класса есть несколько операторов присвоения const MyStr&amp; operator +=(const MyStr&amp;...

перезагрузка >> - C++
Учусь по книге Дейтела. Дошел до перезагрузки &gt;&gt; и &lt;&lt;. И мне интересно зачем в этом примере ignore(); Может кто-то объяснить зачем он в...

Перезагрузка - C++
Здравствуйте! Получил вот такую лабу по перезагрузке. Класс: Множество целых чисел. Поля: Количество элементов в множестве, указатель...

Перезагрузка компьютера - C++
Напишите программу которая будет перезагружать комп.

Перезагрузка операций - C++
Всем привет, есть такая задача. Создать класс - дата с полями в закрытой части: день (1-31), месяц (1-12), год (целое число). Определить...

Перезагрузка функций - C++
1 С помощью механизма перегрузки функций реализовать функции для нахождения суммы: 1) 2-х чисел; 2) 2-х строк; 3) строки и числа; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Грымзик
2466 / 1443 / 31
Регистрация: 14.09.2009
Сообщений: 2,742
30.03.2010, 21:43     Квадрат - перезагрузка операторов #2
Ну оператор умножения для квадрата не определен, а Вы пишите K3*K3*K3*K3*K3.
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
30.03.2010, 21:57  [ТС]     Квадрат - перезагрузка операторов #3
Цитата Сообщение от Грымзик Посмотреть сообщение
Ну оператор умножения для квадрата не определен, а Вы пишите K3*K3*K3*K3*K3.
ну вот я перегрузил оператор *

пишет такую ошибку
d:\мои документы\visual studio 2008\projects\laba 5 perezagryzka\laba 5 perezagryzka\main.cpp(11) : error C2676: binary '/' : 'Square' does not define this operator or a conversion to a type acceptable to the predefined operator
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
30.03.2010, 22:15     Квадрат - перезагрузка операторов #4
ArniLand, проблема та же - не определен оператор деления /.
ForestG
33 / 33 / 3
Регистрация: 21.11.2009
Сообщений: 201
01.04.2010, 20:22     Квадрат - перезагрузка операторов #5
Единственное что могу посоветовать
стандартную функцию pow(x,y) - x в степени y
библиотека кажется
#include <cmath>
Yandex
Объявления
01.04.2010, 20:22     Квадрат - перезагрузка операторов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru