Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
7 / 7 / 4
Регистрация: 07.09.2012
Сообщений: 178

Не наследует данные базового класса

07.04.2013, 15:19. Показов 810. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять что не так,но есть предположение что дело в том что в классе circle поля имеют те же названия что и в базовом.
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
#include <iostream>
 
using namespace std;
 
class Shape{
public:
    void Get_info();
    virtual void Show();
    virtual void Delete();
    virtual void Rotate();
    virtual void Move();
    Shape(){center=0;angle=0;scale=0;}
    ~Shape();
private:
float center,angle,scale;
};
 
void Shape::Get_info(){
    cout<<"Заполните информацию о базовой фигуре\n";
    cin>>center>>angle>>scale;
}
 
void Shape::Show(){
    cout<<"Информация о базовой фигуре\n";
    cout<<"Координаты центра "<<center<<" Угол поворота "<<angle<<" Маштаб "<<scale<<endl;
}
 
void Shape::Delete(){
    center=0;angle=0;scale=0;
    system("CLS");
}
void Shape::Rotate(){
    cout<<"Введите угол поворота для базовой фигуры\n";
    cin>>angle;
    cout<<"Базованя фигу была повёрнута на "<<angle<<endl;
}
 
void Shape::Move(){
    float vector_x,vector_y;
    cout<<"Введите вектор для перемещения базовой фигуры\n";
    cin>>vector_x>>vector_y;
    cout<<"Базовая фигура была передвинута на вектор "<<vector_x<<" "<<vector_y<<endl;
}
 
Shape::~Shape(){
    cout<<"Деструктор Базовой фигуры\n";
}
 
class Circle:public Shape{
public:
    virtual void Show();
    virtual void Delete();
    virtual void Move();
    ~Circle();
private:
    float center,angle,scale;
};
 
void Circle::Show(){//нужно что бы этот метод получал данные которые мы уже ввели для базового класса.
    cout<<"\nИнформация о фигуре Круг\n";
    cout<<"Координаты центра "<<center<<" Угол поворота "<<angle<<" Маштаб "<<scale;
}
 
void Circle::Delete(){
    center=0;angle=0;scale=0;
    system("CLS");
}
 
void Circle::Move(){
    float vector_x,vector_y;
    cout<<"Введите вектор для перемещения фигуры Круг\n";
    cin>>vector_x>>vector_y;
    cout<<"Фигура Крут была передвинута на вектор "<<vector_x<<" "<<vector_y<<endl;
}
 
Circle::~Circle(){
    cout<<"Деструктор фигуры Круг\n";
}
 
int main(){
    setlocale(0,"");
    Shape obj1;
    Circle obj2;
    obj1.Get_info();
    obj1.Show();
    obj1.Rotate();
    obj1.Move();
    obj2.Show();//нужно что бы этот метод получал данные которые мы уже ввели для базового класса.
    obj2.Move();
    cout<<"После нажания Enter фигура будет очишенна с экранна\n";
    system("pause");
    obj2.Delete();
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2013, 15:19
Ответы с готовыми решениями:

Не наследует данные из базового класса. Все очень примитивно, но не для меня
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string&gt; #include &lt;cmath&gt; #include &lt;Windows.h&gt; using...

Почему объект производного класса не видит префиксный оператор из базового класса?
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его затюнинговать, сделал ему производный класс с...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект базового класса, а ves- производного ...

8
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
07.04.2013, 16:21
Убрать поля center, angle, scale из Circle, а в базовом классе написать методы доступа к ним.
0
7 / 7 / 4
Регистрация: 07.09.2012
Сообщений: 178
07.04.2013, 21:15  [ТС]
Tulosba, возвращает 0
поверьте данный код у себя
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
110
111
#include <iostream>
 
using namespace std;
 
class Shape{
public:
    Shape(){center=0;angle=0;scale=0;}
    void Set_info();
    float Get_center();
    float Get_angle();
    float Get_scale();
    virtual void Show();
    virtual void Delete();
    virtual void Rotate();
    virtual void Move();
    ~Shape();
private:
float center,angle,scale;
float adjustable_angle;
};
 
void Shape::Set_info(){
    cout<<"Заполните информацию о базовой фигуре:Координаты центра,угол поворота,масштаб\n";
    cin>>center>>angle>>scale;
}
 
void Shape::Show(){
    cout<<"Информация о базовой фигуре\n";
    cout<<"Координаты центра "<<center<<" Угол поворота "<<angle<<" Маштаб "<<scale<<endl;
}
 
void Shape::Delete(){
    center=0;angle=0;scale=0;
    system("CLS");
}
 
void Shape::Rotate(){
    cout<<"Введите угол поворота для базовой фигуры\n";
    cin>>adjustable_angle;
    cout<<"Базованя фигу была повёрнута на "<<adjustable_angle<<endl;
}
 
void Shape::Move(){
    float vector_x,vector_y;
    cout<<"Введите вектор для перемещения базовой фигуры\n";
    cin>>vector_x>>vector_y;
    cout<<"Базовая фигура была передвинута на вектор "<<vector_x<<" "<<vector_y<<endl;
}
 
float Shape::Get_center(){
    return center;
}
 
float Shape::Get_angle(){
    angle=angle+adjustable_angle;
    return angle;
}
 
float Shape::Get_scale(){
    return scale;
}
 
Shape::~Shape(){
    cout<<"Деструктор Базовой фигуры\n";
}
 
class Circle:public Shape{
public:
    virtual void Show();
    virtual void Delete();
    virtual void Move();
    ~Circle();
};
 
void Circle::Show(){
    cout<<"\nИнформация о фигуре Круг\n";
    cout<<"Координаты центра "<<Shape::Get_center()<<" Угол поворота "<<Shape::Get_angle()<<" Маштаб "<<Shape::Get_scale()<<endl;
}
 
void Circle::Delete(){
    //center=0;angle=0;scale=0;
    system("CLS");
}
 
void Circle::Move(){
    float vector_x,vector_y;
    cout<<"Введите вектор для перемещения фигуры Круг\n";
    cin>>vector_x>>vector_y;
    cout<<"Фигура Крут была передвинута на вектор "<<vector_x<<" "<<vector_y<<endl;
}
 
Circle::~Circle(){
    cout<<"Деструктор фигуры Круг\n";
}
 
int main(){
    setlocale(0,"");
    Shape obj1;
    Circle obj2;
    obj1.Set_info();
    obj1.Show();
    obj1.Rotate();
    obj1.Move();
    obj2.Show();
    obj2.Move();
    cout<<"После нажатия Enter фигура будет очищена с экранна\n";
    system("pause");
    obj2.Delete();
    system("pause");
    return 0;
}
Добавлено через 4 часа 1 минуту
подскажите кто-то
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
07.04.2013, 21:25
Vlad_, что проверить-то? Для проверок могу предложить сайт http://liveworkspace.org/
0
7 / 7 / 4
Регистрация: 07.09.2012
Сообщений: 178
07.04.2013, 21:28  [ТС]
Tulosba, ну выдает тоже самое 0,подскажите просто что не так ещё?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
07.04.2013, 21:29
всё так. а что надо то?
я бы вообще убрал строку 56 из твоего кода.
0
7 / 7 / 4
Регистрация: 07.09.2012
Сообщений: 178
07.04.2013, 21:34  [ТС]
Kuzia domovenok, нужен базовый класс
от него класс Круг,в котором будут уже данные которые мы ввели в базовый+возможность их изменить.
а при отработке метода void Circle::Show() оно пишет что центр 0 угол поворота 0 масштаб 0
56 return angle?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
07.04.2013, 23:33
C++
1
2
3
4
5
6
7
8
9
class Circle:public Shape{
public:
virtual void Show();
virtual void Delete();
virtual void Move();
~Circle();
private:
float center,angle,scale;//ЗАЧЕМ ТЫ ЭТО ТУТ НАПИСАЛ? Убери!
};
0
7 / 7 / 4
Регистрация: 07.09.2012
Сообщений: 178
08.04.2013, 00:18  [ТС]
Kuzia domovenok, пожалуйста посмотрите код из поста №3 в этой теме,проблема осталась именно на неём
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2013, 00:18
Помогаю со студенческими работами здесь

Вызов метода производного класса через обращение к методу базового класса
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?

Перегрузка оператора >> для дочернего класса от базового виртуального класса
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Вызвать конструктор производного класса без конструктора базового класса
Здравствуйте! У меня есть базовый класс треугольник и производный класс равносторонний треугольник.В конструкторе треугольника вводятся...

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru