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

Множественное наследование - C++

Восстановить пароль Регистрация
 
polya
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 26
16.01.2013, 20:51     Множественное наследование #1
Задание
Часть 1.
Создать иерархию типов "Точка" и подчинённые ему "Точка в двумерном пространстве" и
"Точка в трёхмерном пространстве".
Каждый из классов должен иметь конструкторы по умолчанию и с параметрами,
перегруженные операции ввода из потока и вывода в поток.
Создать несколько объектов каждого типа, показать, как производный объект
может использовать данные и методы базового класса.
Часть 2.
Добавить к иерархии объектов тип "Материальная точка" как точка,
обладающая массой и существующая на плоскости или в пространстве.

Вот то, что я написала:
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
class Point { //базовый класс "Точка".
protected:
    float a,b,c;//переменные базового класса.
public:
    Point();// по умолчанию
    Point(float,float,float);//с парамертами
    void print();//ввод в поток
    void input();//вывод из потока
};
 
class Point2x: public Point { //класс, подчиненный "Точка"
protected:
    float x,y;
public:
    Point2x ();
    Point2x(float ,float, float, float);
    Point2x(float aa,float bb, Point &Figure): Point(Figure) {
    x=aa; y=bb;
    };
    void print();
    void input();
};
 
class Point3x: public Point {//класс, подчиненный "Точка"
protected:
    float x,y,z;
public:
    Point3x();
    Point3x(float , float , float, float , float , float);
    Point3x(float aaa, float bbb, float ccc, Point &Figure): Point(Figure){
    x=aaa; y=bbb; z=ccc;
    }
    void print();
    void input();
};
 
 
//===========================================================
Point::Point(){
    a=5;
    b=6;
    c=8;
}
 
Point::Point(float aa, float bb, float cc) {
    a=aa;b=bb;c=cc;
}
 
void Point::input() {
     printf ("Point is: a=%f.2, b=%f.2, c=%f.2\n",a,b,c);
}
//=======================================================================
Point2x::Point2x(){
    x=y=0;
}
 
Point2x::Point2x(float x, float y, float aa, float bb){
    x=aa;y=bb;
}
 
void Point2x::print() {
    printf("\nВведите координаты\n");
    scanf("%f", &x);
    printf("\n");
    scanf("%f", &y);
    printf("\n");
}
 
void Point2x::input(){
    printf("\nКоординаты точки:\n");
    printf("%4.0f",x);
    printf("\n");
    printf("%4.0f",y);
    printf("\n");
}
//=================================================================
Point3x::Point3x(){
    x=y=z=0;
}
 
Point3x::Point3x(float x, float y, float z, float aaa, float bbb, float ccc){
    x=aaa;y=bbb;z=ccc;
}
 
void Point3x::print() {
    printf("\nВведите координаты\n");
    scanf("%f", &x);
    printf("\n");
    scanf("%f", &y);
    printf("\n");
    scanf("%f", &z);
    printf("\n");
}
void Point3x::input(){
    printf("\nКоординаты точки:\n");
    printf("%4.0f",x);
    printf("\n");
    printf("%4.0f",y);
    printf("\n");
    printf("%4.0f",z);
    printf("\n");
}
Не хватает второй части задания. Помогите с ней, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 20:51     Множественное наследование
Посмотрите здесь:

Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
C++ множественное наследование
Множественное наследование C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.01.2013, 21:06     Множественное наследование #2
Цитата Сообщение от polya Посмотреть сообщение
class Point2x: public Point { //класс, подчиненный "Точка"
Цитата Сообщение от polya Посмотреть сообщение
class Point3x: public Point {//класс, подчиненный "Точка"
Сделайте виртальное
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
16.01.2013, 21:35     Множественное наследование #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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
class Point { //абстрактный базовый класс "Точка".
public:
    virtual void print()=0;//ввод в поток, чистая виртуальная функция
    virtual void input()=0;//вывод из потока, чистая виртуальная функция
};
 
class Point2x: public Point { //класс, подчиненный "Точка"
protected:
    float x,y;
public:
    Point2x ():x(0),y(0){}
    Point2x(float aa,float bb):x(aa),y(bb){}
    void print();
    void input();
};
 
class Point3x: public Point2x {//класс, подчиненный "Точка"
protected:
    float z;
public:
    Point3x():Point2x(),z(0){}
    Point3x(float aaa, float bbb, float ccc):Point2x(aaa,bbb),z(ccc){}
    void print();
    void input();
};
 //--------------------------------------------------------------------------
class MatPoint2x:public Point2x
{
    float mass;
public:
    MatPoint2x ():Point2x(),mass(0){}
    MatPoint2x(float aa,float bb,float cc):Point2x (aa,bb),mass(cc){}
    void print();
    void input();
 
} 
 
//===========================================================
 
void Point2x::input() {
    printf("\nВведите координаты\n");
    scanf("%f", &x);
    printf("\n");
    scanf("%f", &y);
    printf("\n");
}
 
void Point2x::print(){
    printf("\nКоординаты точки:\n");
    printf("%4.0f",x);
    printf("\n");
    printf("%4.0f",y);
    printf("\n");
}
//=================================================================
void Point3x::input() {
    printf("\nВведите координаты\n");
    scanf("%f", &x);
    printf("\n");
    scanf("%f", &y);
    printf("\n");
    scanf("%f", &z);
    printf("\n");
}
void Point3x::print(){
    printf("\nКоординаты точки:\n");
    printf("%4.0f",x);
    printf("\n");
    printf("%4.0f",y);
    printf("\n");
    printf("%4.0f",z);
    printf("\n");
}
//=================================================================
void MatPoint2x::input() {
    printf("\nВведите координаты и массу\n");
    scanf("%f", &x);
    printf("\n");
    scanf("%f", &y);
    printf("\n");
    scanf("%f", &mass);
    printf("\n");
}
void Point3x::print(){
    printf("\nКоординаты и масса точки:\n");
    printf("%4.0f",x);
    printf("\n");
    printf("%4.0f",y);
    printf("\n");
    printf("%4.0f",mass);
    printf("\n");
}
int main()
{
    Point *P;
    P=new Point2x;
    P->input();
    P->print();
    delete P;
 
    P=new Point3x;
    P->input();
    P->print();
    delete P;
    P=new MatPoint2x;
    P->input();
    P->print();
    delete P;
}
Yandex
Объявления
16.01.2013, 21:35     Множественное наследование
Ответ Создать тему
Опции темы

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