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

Не могу разобраться с ООП - C++

Восстановить пароль Регистрация
 
zombiecomatoz
13 / 13 / 1
Регистрация: 06.05.2013
Сообщений: 52
10.06.2013, 12:02     Не могу разобраться с ООП #1
Помогите разобраться с ошибками. Что не так делаю?
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
public class Points
{
    Points(double initial_x, double initial_y, double initial_z)
    {
        x = initial_x;
        y = initial_y;
        z = initial_z;
    }
    ~Points(){}
    double GetX()  {return x;}
    double GetY()  {return y;}
    double GetZ()  {return z;}
 
private:
    double x;
    double y;
    double z;
};
 
class Element
{
    Element(Points point, double size)
    {
        points[0] = new Points(point.GetX, point.GetY, point.GetZ);
        points[1] = new Points(point.GetX + size, point.GetY, point.GetZ);
        points[2] = new Points(point.GetX, point.GetY + size, point.GetZ);
        points[3] = new Points(point.GetX + size, point.GetY + size, point.GetZ);
        points[4] = new Points(point.GetX, point.GetY, point.GetZ + size);
        points[5] = new Points(point.GetX + size, point.GetY, point.GetZ +size);
        points[6] = new Points(point.GetX, point.GetY + size, point.GetZ + size);
        points[7] = new Points(point.GetX + size, point.GetY + size, point.GetZ + size);
    }
    ~Element(){}
    Points GetPoint(int number)
    {
        return points[number];
    }
 
private:
    Points points[8];
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,841
Записей в блоге: 2
Завершенные тесты: 1
10.06.2013, 12:10     Не могу разобраться с ООП #2
Во-первых, слово public перед class уберите. А во-вторых, у класса Points нет конструктора по умолчанию, поэтому массив
C++
1
Points points[8];
создать нельзя
zombiecomatoz
13 / 13 / 1
Регистрация: 06.05.2013
Сообщений: 52
10.06.2013, 12:12  [ТС]     Не могу разобраться с ООП #3
Сделал вот так. ВСе равно ошибки
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
class Points
{
    Points();
    Points(double initial_x, double initial_y, double initial_z)
    {
        x = initial_x;
        y = initial_y;
        z = initial_z;
    }
    ~Points(){}
    double GetX()  {return x;}
    double GetY()  {return y;}
    double GetZ()  {return z;}
 
private:
    double x;
    double y;
    double z;
};
 
class Element
{
    Element(Points point, double size)
    {
        points[0] = new Points(point.GetX(), point.GetY(), point.GetZ());
        points[1] = new Points(point.GetX() + size, point.GetY(), point.GetZ());
        points[2] = new Points(point.GetX(), point.GetY() + size, point.GetZ());
        points[3] = new Points(point.GetX() + size, point.GetY() + size, point.GetZ());
        points[4] = new Points(point.GetX(), point.GetY(), point.GetZ() + size);
        points[5] = new Points(point.GetX() + size, point.GetY(), point.GetZ() +size);
        points[6] = new Points(point.GetX(), point.GetY() + size, point.GetZ() + size);
        points[7] = new Points(point.GetX() + size, point.GetY() + size, point.GetZ() + size);
    }
    ~Element(){}
    Points GetPoint(int number)
    {
        return points[number];
    }
 
private:
    Points points[8];
};
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,841
Записей в блоге: 2
Завершенные тесты: 1
10.06.2013, 12:13     Не могу разобраться с ООП #4
C++
1
points[0] = new Points(point.GetX, point.GetY, point.GetY);
и что это такое? Тут GetX - это функция, так что круглые скобки нужны,GeY и GetZ - тоже самое.
И points[0] - это не указатель вообще то
zombiecomatoz
13 / 13 / 1
Регистрация: 06.05.2013
Сообщений: 52
10.06.2013, 12:21  [ТС]     Не могу разобраться с ООП #5
А как правильно сделать, так чтоб работало? Мне в классе Element нужyно чтоб заполнялся массив из 8 точек Point
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,841
Записей в блоге: 2
Завершенные тесты: 1
10.06.2013, 12:27     Не могу разобраться с ООП #6
Все зависит от цели. Можно так:
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
class Points
{
public:
    Points(double initial_x, double initial_y, double initial_z)
    {
        x = initial_x;
        y = initial_y;
        z = initial_z;
    }
     Points():x(0),y(0),z(0){}
    ~Points(){}
    double GetX()  {return x;}
    double GetY()  {return y;}
    double GetZ()  {return z;}
 
private:
    double x;
    double y;
    double z;
};
 
class Element
{
    Element(Points point, double size)
    {
        points[0] = Points(point.GetX(), point.GetY(), point.GetZ());
        points[1] = Points(point.GetX() + size, point.GetY(), point.GetZ());
        points[2] = Points(point.GetX(), point.GetY() + size, point.GetZ());
        points[3] = Points(point.GetX() + size, point.GetY() + size, point.GetZ());
        points[4] = Points(point.GetX(), point.GetY(), point.GetZ() + size);
        points[5] = Points(point.GetX() + size, point.GetY(), point.GetZ() +size);
        points[6] = Points(point.GetX(), point.GetY() + size, point.GetZ() + size);
        points[7] = Points(point.GetX() + size, point.GetY() + size, point.GetZ() + size);
    }
    ~Element(){}
    Points GetPoint(int number)
    {
        return points[number];
    }
 
private:
    Points points[8];
};
Yandex
Объявления
10.06.2013, 12:27     Не могу разобраться с ООП
Ответ Создать тему
Опции темы

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