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

Конструктор классы - C++

Восстановить пароль Регистрация
 
Dan299
1 / 1 / 0
Регистрация: 17.09.2011
Сообщений: 39
12.11.2011, 18:35     Конструктор классы #1
В общем. Вот задача. Мне надо, чтобы с помощью конструктора объекту присваивались значения. Вот код, со всеми методами, которыми я пробовал это сделать. Так что не так? Почему он не хочет работать? В main описанная функция (наверно) путём присваивания hh.a[][] работает, но это не то. Должно инициализироваться без подобного обращения к объекту, т.е только путём присваивания к a[][]. Подскажите
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
/*
Составить описание класса прямоугольника со сторонами, параллельными осям координат. 
Предусмотреть возможность перемещения прямоугольника на плоскости, изменение размеров, 
построение наименьшего прямоугольника, содержащего 2 заданных прямоугольника и прямоугольник, 
являющегося общей частью(пересечением) 2-х прямоугольников.
*/
 
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <locale.h>
class Priamoug
{   
public:
    int a[2][2];
    Priamoug(){};
    ~Priamoug(){};
    void Vvod(int x1,int x2, int y1, int y2);
    Priamoug(int x1,int x2, int y1, int y2){
        a[0][0] = x1;
        a[0][1] = y1;
        a[1][0] = x2;
        a[1][1] = y2;
    };
};
void Priamoug::Vvod(int x1, int x2, int y1, int y2)
{
    Priamoug::Priamoug(x1, x2, y1, y2)/*{
        a[0][0] = x1;
        a[0][1] = y1;
        a[1][0] = x2;
        a[1][1] = y2;
    }*/;
}
int main()
{ 
    setlocale (LC_ALL, "");
    int i, j, m, o = 1, x1, x2, y1, y2;
    printf ("ВНИМАНИЕ!! \n");
    printf ("Координаты вводятся только левого нижнего и правого верхнего\n");
    printf ("угла прямоугольника. Первой - абсцисса, второй - ордината.\n");
    printf ("Выводятся координаты аналогичным образом.\n");
    printf ("\n");
    printf ("Введите координаты прямоугольника\n");
    scanf ("%d", &x1);
    scanf ("%d", &y1);
    scanf ("%d", &x2);
    scanf ("%d", &y2);
    Priamoug hh;
    //Priamoug::Priamoug(x1, x2, y1, y2);
    /*{
        hh.a[0][0] = x1;
        hh.a[0][1] = y1;
        hh.a[1][0] = x2;
        hh.a[1][1] = y2;
    };*/
    hh.Vvod(x1, x2, y1, y2);
    printf ("%d %d %d %d", hh.a[0][0], hh.a[0][1], hh.a[1][0], hh.a[1][1]);
    getch ();
return 0;}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 18:50     Конструктор классы #2
C++
1
Priamoug hh(x1,x2,y1,y2);
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
12.11.2011, 18:50     Конструктор классы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class pram
{
private: 
    int a,b,x,y;         
public:      
    inline pram(int a,int b,int x,int y){};      
    int move(int ,int);
    void drav();  
};
int pram::move(int a,int b)
{
this->a+=a;    
this->b=+b;
this->x+=a;    
this->y=+b;
}
void pram::drav()
{
//..... у меня нет стандартных функций работы с графой    
}
Dan299
1 / 1 / 0
Регистрация: 17.09.2011
Сообщений: 39
12.11.2011, 18:55  [ТС]     Конструктор классы #4
Спасибо!)
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
12.11.2011, 18:59     Конструктор классы #5
Dan299, а чё вам мой прямоугольник не использовать там переменные больше нагружены смыслом он меньше и быстрее работает
Dan299
1 / 1 / 0
Регистрация: 17.09.2011
Сообщений: 39
12.11.2011, 19:06  [ТС]     Конструктор классы #6
Van111, это както для меня сложно)

amor1k, А если ввод оформлять отдельной функцией, как метод - в описании функции также написать эту строку, но вместо hh какойто абстрактный объект? И потом наш объект (hh) передать в параметрах функции ввода?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
12.11.2011, 19:11     Конструктор классы #7
C++
1
inline pram(int a,int b,int x,int y){};
сразу вбиваются четыре значения которые ту передашь в переменные a b x y
Цитата Сообщение от Van111 Посмотреть сообщение
int pram::move(int a,int b) { this->a+=a; this->b=+b; this->x+=a; this->y=+b; }
вместо this->a можно pram.a
левый верхний
C++
1
2
this->a+=a;    
this->b=+b;
правый нижний
C++
1
2
this->x+=a;    
this->y=+b;
Dan299
1 / 1 / 0
Регистрация: 17.09.2011
Сообщений: 39
12.11.2011, 19:16  [ТС]     Конструктор классы #8
Van111, Я уже пробовал сдать прогу, построенную подобным образом. Препод хочет чтобы я инициализировал параметры через конструктор.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
12.11.2011, 19:24     Конструктор классы #9
Цитата Сообщение от Dan299 Посмотреть сообщение
Van111, Я уже пробовал сдать прогу, построенную подобным образом. Препод хочет чтобы я инициализировал параметры через конструктор.
Цитата Сообщение от Van111 Посмотреть сообщение
inline pram(int a,int b,int x,int y){};
это и есть конструктор
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2011, 20:08     Конструктор классы
Еще ссылки по теме:

C++ Классы, конструктор, деструктор
C++ Классы, конструктор, деструктор
C++ Конструктор и деструктор, наследуемые классы

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

Или воспользуйтесь поиском по форуму:
Dan299
1 / 1 / 0
Регистрация: 17.09.2011
Сообщений: 39
12.11.2011, 20:08  [ТС]     Конструктор классы #10
Аа, блин. move это функция перемещения?

Добавлено через 41 минуту
Спасибо вам! Всё работает) Надеюсь хоть теперь с 4го раза сдам))
Yandex
Объявления
12.11.2011, 20:08     Конструктор классы
Ответ Создать тему
Опции темы

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