Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
#1

Класс Роint и Rect

01.04.2012, 01:01. Просмотров 3907. Ответов 7
Метки нет (Все метки)

здравствуйте помоги исправить ошибки. класс 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);}};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2012, 01:01
Ответы с готовыми решениями:

Задача: написать классы Rect и Size
Написать Класс Rect где точка origin верхняя левая и класс Size ширина и высота

Вопрос про функцию square в классе Rect
Скажите пожалуйста, что данная функция делает? очень надо, подскажите кто знает

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class...

Как определить идентификатор в c++. Rect- индификатор не определен. Не могу понять как исправить
#pragma once #include&quot;Ship.h&quot; #define DECK 176//исправная клетка #define...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим...

7
Avazart
Эксперт С++
7717 / 5626 / 549
Регистрация: 10.12.2010
Сообщений: 25,328
Записей в блоге: 17
01.04.2012, 01:05 #2
Какие ошибки выдает?
0
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 01:11  [ТС] #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
0
Avazart
Эксперт С++
7717 / 5626 / 549
Регистрация: 10.12.2010
Сообщений: 25,328
Записей в блоге: 17
01.04.2012, 01:13 #4
C++
1
MyRect::MyRect(const MyRect&a):MyPoint(a) { //!!!
C++
1
Rect Rect::operator+=(Rect&a){ //!!!
0
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
01.04.2012, 01:18  [ТС] #5
а название функции operator+= ?или я что-то перепутала совсем?
0
Avazart
Эксперт С++
7717 / 5626 / 549
Регистрация: 10.12.2010
Сообщений: 25,328
Записей в блоге: 17
01.04.2012, 01:27 #6
Дело в том что в некоторых IDE стоит избегать таких названий классов как Rect и Point так как они уже там предусмотрены и могут конфликтовать потому я и добавил приставку My

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

C++
1
Rect Rect::operator+=(Rect&a){ // Тут у тебя после первого Rect было  "::" что  неправильно, первый Rect это возвращаемый тип
а с остальными ошибками не знаете что сделать?
0
Avazart
Эксперт С++
7717 / 5626 / 549
Регистрация: 10.12.2010
Сообщений: 25,328
Записей в блоге: 17
01.04.2012, 13:51 #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;
    };
0
01.04.2012, 13:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 13:51

Класс: Разработать абстрактный класс класс Point для задания координаты...
Всем привет, помогите пожалуйста решить задачу, я уже всю голову сломал, не...

Отдельно класс данных, класс формул и главный класс
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста!...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число"
Ткма работы создать класс pair (пара чисел); определить метод перемножения...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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