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

Класс Роint и Rect - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.61
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 01:01     Класс Роint и Rect #1
здравствуйте помоги исправить ошибки. класс Point базовый Rect производный.
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
*.h
 
class Point{
private: 
    int x,y;
public:
    
    Point();//Конструктор по умолчанию
    Point(int a,int b);//Конструктор инициализации
    Point (const Point&a);//Конструктор копии
 
    Point& move(Point &a,int b,int c);//переместить
    void assign(const Point&a); //присвоить
    void print ();
};
class Rect: public Point {
private:
    int dx,dy;
public:
    Rect();
    Rect(int a,int b);
    Rect (const Rect&a);
    void operator=( Rect&a);
    Rect operator+=(Rect&a);
    void square(const Rect&a);
    };
 
 
*.cpp
 
#include "Point1.h"
#include "iostream"
    Point::Point()
    {x=0;
     y=0;};
 
    Point::Point(int a,int b)
    {x=a;
     y=b;};
 
    Point::Point(const Point&a)
    {x=a.x;
    y=a.y;
    };
 
    Point& Point::move( Point&a,int b, int c)
    {
         
        a.x=b;
        a.y=c;
        return a;
    };
    void Point::assign(const Point&a)
    {
        x=a.x;
        y=a.y;
    }; 
    void Point::print ()
    {
        std::cout<<"x="<<x<<" y="<<y;
    };
    
    Rect::Rect():Point(){
    dx=0;
    dy=0;
    };
    Rect::Rect(int a,int b):Point(a,b){
    dx=a;
    dy=b;
    };
    Rect::Rect(const Rect&a):Point( Point&a){////Непонятный конструктор копии
        dx=a.dx;
        dy=a.dy;
    };
    void Rect::operator=( Rect&a){
        dx=a.dx;
        dy=a.dy;
    };
    Rect::Rect::operator+=(Rect&a){///
        dx+=а.dx;
        dy+=a.dy;
        return *this;
    };
    void Rect::square(const Rect&a){
        if(dx!=dy){std::cerr<<"Прямоугольник не квадрат";exit(1);}
        else {std::cerr<<"Квадрат";exit(1);}};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2012, 01:01     Класс Роint и Rect
Посмотрите здесь:

Вопрос про функцию square в классе Rect C++
C++ Класс домов и класс улиц для учета поступлений квартплаты. Массив
Задача: написать классы Rect и Size C++
Класс, производный класс, паблик-класс C++
C++ Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.04.2012, 01:05     Класс Роint и Rect #2
Какие ошибки выдает?
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 01:11  [ТС]     Класс Роint и Rect #3
Цитата Сообщение от Avazart Посмотреть сообщение
Какие ошибки выдает?
8 IntelliSense: отсутствует явный тип (требуется "int") c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 49
9 IntelliSense: объявление несовместимо с "Rect Rect::operator+=(Rect &a)" (объявлено в строке 23 из "c:\users\юлька\documents\visual studio 2010\projects\point\point\Point1.h") c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 49
11 IntelliSense: не существует подходящей функции преобразования из "Rect" в "int" c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 52
7 IntelliSense: использование имени типа не допускается c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 41
10 IntelliSense: идентификатор "а" не определен c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 50
Ошибка 2 error C3083: {ctor}: символ слева от "::" должен представлять тип c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 49
Ошибка 3 error C2556: Rect::Rect(Rect &): перегруженная функция отличается от "Rect Rect::operator +=(Rect &)" только возвращаемым типом c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 49
Ошибка 4 error C2371: Rect::operator +=: переопределение; различные базовые типы c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 49
Ошибка 1 error C2275: Point: недопустимое использование этого типа в качестве выражения c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 41
Ошибка 6 error C2228: выражение слева от ".dx" должно представлять класс, структуру или объединение c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 50
Ошибка 5 error C2065: а: необъявленный идентификатор c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 50
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.04.2012, 01:13     Класс Роint и Rect #4
C++
1
MyRect::MyRect(const MyRect&a):MyPoint(a) { //!!!
C++
1
Rect Rect::operator+=(Rect&a){ //!!!
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 01:18  [ТС]     Класс Роint и Rect #5
а название функции operator+= ?или я что-то перепутала совсем?
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.04.2012, 01:27     Класс Роint и Rect #6
Дело в том что в некоторых IDE стоит избегать таких названий классов как Rect и Point так как они уже там предусмотрены и могут конфликтовать потому я и добавил приставку My

C++
1
Rect Rect::operator+=(Rect&a){ // Тут у тебя после первого Rect было  "::" что  неправильно, первый Rect это возвращаемый тип
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 09:46  [ТС]     Класс Роint и Rect #7
Цитата Сообщение от Avazart Посмотреть сообщение
Дело в том что в некоторых IDE стоит избегать таких названий классов как Rect и Point так как они уже там предусмотрены и могут конфликтовать потому я и добавил приставку My

C++
1
Rect Rect::operator+=(Rect&a){ // Тут у тебя после первого Rect было  "::" что  неправильно, первый Rect это возвращаемый тип
а с остальными ошибками не знаете что сделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 13:51     Класс Роint и Rect
Еще ссылки по теме:

Реализовать класс Goods используя для представления цены класс Money C++
C++ Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Отдельно класс данных, класс формул и главный класс C++

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.04.2012, 13:51     Класс Роint и Rect #8
А какие ошибки остались?

Добавлено через 14 минут
Ошибка 5 error C2065: а: необъявленный идентификатор c:\users\юлька\documents\visual studio 2010\projects\point\point\point1.cpp 50
По-видимому у вас русское "a" в место латиницы в
C++
1
2
3
4
5
 Rect  Rect::operator+=(Rect&a){///
        dx+=а.dx;   // здесь
        dy+=a.dy;  // здесь и здесь
        return *this;
    };
Yandex
Объявления
01.04.2012, 13:51     Класс Роint и Rect
Ответ Создать тему
Опции темы

Текущее время: 06:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru