Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструторы. 
:(
    Опции темы
Rencom
Дата 24.5.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



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

Проблема: не могу инициализировать координаты прямоугольников. Не работает конструктор. Среда разработки - Borland C++ 3.1.

Код

#include <iostream.h>

enum boolean {FALSE, TRUE};
class TPoint {
     public:
         int  x,y;
         int movePoint ( int newx, int newy);
         int removing  ( int dx, int dy );
    };
int TPoint::movePoint(int newx, int newy) {
     x = newx;
     y = newy;
     return 0;
    }
int TPoint::removing(int dx, int dy) {
     x += dx;
     y += dy;
     return 0;
    }
class TSquare {
     public:
         TPoint  a,b;  // a - top left corner
                   // b - bottom right corner
         void move(int dx,int dy) {
             a.removing(dx,dy);
             b.removing(dx,dy);
            }

         void grow(int dx,int dy) {
             a.x += dx;
             a.y += dy;

             b.x += dx;
             b.y += dy;
            }

         void intersect(const TSquare &r);
         void Union(const TSquare &r);
         boolean contains(const TPoint &p);
         boolean IsEmpty();

         TSquare(int ax, int ay, int bx, int by) { // constructor
                 a.x = ax;
                 a.y = ay;
                 b.x = bx;
                 b.y = by;
                };
         TSquare() { a.x = a.y = b.x = b.y = 0; }; // constructor

    };
void TSquare::intersect(const TSquare &r) {
     a.x = (a.x > r.a.x) ? a.x : r.a.x; // max
     b.x = (b.x < r.b.x) ? b.x : r.b.x; // min

     a.y = (a.y > r.a.y) ? a.y : r.a.y; // max
     b.y = (b.y < r.b.y) ? b.y : r.b.y; // min
    };
void TSquare::Union(const TSquare &r) {
     a.x = (a.x <= r.a.x) ? a.x : r.a.x;
     a.y = (a.y <= r.a.y) ? a.y : r.a.y;

     b.x = (b.x >= r.b.x) ? b.x : r.b.x;
     b.y = (b.y >= r.b.y) ? b.y : r.b.y;
    };
boolean TSquare::contains(const TPoint &p) {
     return boolean(p.x >= a.x && p.x <= b.x && p.y >= a.y && p.y <= b.y);
    };
boolean TSquare::IsEmpty() {
     return boolean(a.x >= b.x || a.y >= b.y );
    };

void main() {

     int ax,ay,bx,by;
     cout << "Input square #1:";
     cout << "\nTop left corner     ->" << "x=";
     cin  >> ax;
     cout << "  y=";
     cin  >> ay;
     cout << "\nBottom right corner ->" << "x=";
     cin  >> bx;
     cout << "  y=";
     cin  >> by;
     TSquare S1=(ax,ay,bx,by);

     cout << "Input square #2:";
     cout << "\nTop left corner     ->" << "x=";
     cin  >> ax;
     cout << "  y=";
     cin  >> ay;
     cout << "\nBottom right corner ->" << "x=";
     cin  >> bx;
     cout << "  y=";
     cin  >> by;
     TSquare S2=(ax,ay,bx,by);

    }
 
PM MAIL   Вверх
Rockie
Дата 24.5.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



поубирай равно при вызовах конструктора 


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Rencom
Дата 24.5.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



блин.... ты прав.. спасибо 
PM MAIL   Вверх
MAKCim
Дата 24.5.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Rencom
зачем?
Цитата

Код

enum boolean {FALSE, TRUE};

 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Амортизатор
Дата 24.5.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: 1
Всего: 8



Может парень ностальгирует по явеsmile)) 


--------------------
Поехали!
PM MAIL   Вверх
DeadSoul
Дата 24.5.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Амортизатор, этот парень мазахист. Пусть он попробует скомпилить данный код под виндой используя WinApi 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
HappyLife
Дата 25.5.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 3
Всего: 8



насколько известно в Borland C++ 3.1.отсутвуют тип bool. 
PM MAIL   Вверх
MAKCim
Дата 25.5.2006, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

насколько известно в Borland C++ 3.1.отсутвуют тип bool.  

не проверял  smile 
если нет, тогда ладно 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Амортизатор
Дата 25.5.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: 1
Всего: 8



Rencom, пользуйся ANSI-совместимым компилятором. Кстати, в C тип bool появился насколько я помню только в ANSI 99, поэтому может быть тот стандарт C++, который поддерживается компилятором Borland C++ 3.1, попросту не поддерживает этот тип. 


--------------------
Поехали!
PM MAIL   Вверх
MAKCim
Дата 26.5.2006, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

Кстати, в C тип bool появился насколько я помню только в ANSI 99

нет, проверено опытным путем 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Rencom
Дата 26.5.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



в Borland C++ 3.1 действительно нет типа bool, создал для удобства.


Цитата

Rencom, пользуйся ANSI-совместимым компилятором. 

например каким?) 
PM MAIL   Вверх
MAKCim
Дата 26.5.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

например каким?)  

многими
имхо, лучший gcc (или его аналог в винде, про comeau не говорю)
да к тому же он бесплатный 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
KAdot
Дата 27.5.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.9.2005

Репутация: нет
Всего: нет



MAKCim
в с99 тип bool есть
Код

#include <stdbool.h>
  

Это сообщение отредактировал(а) KAdot - 27.5.2006, 15:40
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.