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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
polya
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 26
#1

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

16.01.2013, 20:51. Просмотров 368. Ответов 2
Метки нет (Все метки)

Задание
Часть 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");
}
Не хватает второй части задания. Помогите с ней, пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 20:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Множественное наследование (C++):

множественное наследование - C++
разработайте алгоритм и создайте программы с применением множественного наследования. При выполнении данного задания необходимо создать не...

Множественное наследование - C++
// 4.1.cpp: главный файл проекта. #include <stdafx.h> #include <iostream> #include <string.h> #include <locale> #include...

Множественное наследование - C++
Доброго времени суток. Есть ряд операций. Логически операции делятся на группы ( к примеру, запрос, ответ, чтение из буфера и .п.). В...

Множественное наследование - C++
Добрый день. У меня имеется базовый класс A. У этого класса есть несколько наследников. Есть еще один класс B, который является...

Множественное наследование - C++
Нужно построить такую вот иерархию классов: Я написал прогу, но не уверен правильно ли сохраняется иерархия. Вот код:#include...

Множественное наследование - C++
Вычислите площадь и периметр прямоугольника, если известны его диагональ и одна из сторон.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.01.2013, 21:06 #2
Цитата Сообщение от polya Посмотреть сообщение
class Point2x: public Point { //класс, подчиненный "Точка"
Цитата Сообщение от polya Посмотреть сообщение
class Point3x: public Point {//класс, подчиненный "Точка"
Сделайте виртальное
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 21:35
Привет! Вот еще темы с ответами:

множественное наследование - C++
Мечтаю реализовать такую иерархию human->employee->doctor в реализации doctor ругает конструктор. Ошибка 1 error C2062: type 'char'...

Множественное наследование - C++
Доброй ночи!:) вот условие http://www.imagepost.ru/images/1/5n/15n_1.jpg каждом класс должен содержать инициализирующие...

Множественное наследование - C++
Есть два класса Human(fname, lname) и класс Employee c чисто виртуальными функц (зарплата и печать). На базе этих классов нужно создать...

Множественное наследование - C++
#include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std; class ship { ...


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

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

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