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

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

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

Классы и основы наследования, с++ - C++

23.05.2012, 19:34. Просмотров 931. Ответов 4
Метки нет (Все метки)

Последняя лабораторная работа семестра. Немаленькая...про классы мало что знаю. Сложно ли это сделать? Не могли бы помочь ?

1. Разработайте класс GeometricalBody (геометрическое тело), который должен содержать защищенную (protected) переменную name типа std::string, хранящую наименование объекта этого класса, и член-функцию print() для вывода на экран этого наименования. Наименование объекту присваивается в момент создания при вызове конструктора, если же объект создается конструктором без параметров, то имя присваивается вызовом члена-функции SetObjectName.
Напишите программу, которая создает и инициализирует два объекта этого класса. Один объект создается с использованием конструктора с параметром, а другой – конструктором без параметров.

2. Разработайте производный от класса GeometricalBody класс геометрического
тела, указанного в вашем варианте (например, в варианте указан Cube (куб)).
Класс должен содержать указанные там закрытые (private) переменные (например, для куба это а — ребро куба) и переменную name типа std::string, хранящую наименование объекта этого класса. Для присвоения имени объекту класс должен содержать функцию SetObjectName .
Разработанный класс должен содержать метод Init() для инициализации членов-данных класса, а также методы, вычисляющие и возвращающие значения площадей основания getSo (), боковой getSb () и полной getSp () поверхностей по формулам, которые также приведены в вашем варианте, а также функцию print() для вывода имени объекта и значений вычисленных площадей на экран.

3. Напишите программу, которая создает и инициализирует два объекта разработанного класса, вычисляет и выводит значения площадей основания, боковой и полной поверхностей. Для создания и выполнения второго объекта используйте указатель.

4. Внесите в базовый и производный классы такие изменения, которые позволят
вам продемонстрировать раннее и позднее связывания (называемые еще статическим и динамическим связыванием).

Вариант:
Имя класса: Trapezium_Prism (прямая призма, в основании — равнобедренная тра-пеция)
Переменные: a, b — параллельные стороны, h — высота трапеции-основания, Н — высота призмы.
Площади поверхностей:
основания S(осн) = (a+b)h/2
боковой S(бок) = (A=B+2*sqr(1/4(a-b)^2+h^2))*H
полная S(полн) = 2S(осн) + S(бок)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 19:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы и основы наследования, с++ (C++):

Классы наследования - C++
Необходима чтобы personcart содержал массив карточек персон (класс cart) как не крутил вечная ошибка fatal error LNK1120: 1 unresolved...

Классы наследования, немножко не доделал - C++
Доброго времени суток!! Ребята, прошу, помогите! У меня есть программа с 3 классами: точка,эллипс и эллипсоид, нужно сделать то же, только...

Спроектировать классы, находящиеся в отношении наследования - C++
вот код, ошибку выдает хелп плиз #include "stdafx.h" #include "conio.h" #include <iostream> #include "string.h" using...

Классы основы - C++
class a1 // это определение класса { -||-||-; }; a1 b; // как я понимаю это объявление скажите пожалуйста где здесь...

Разработать программу с использованием наследования классов, реализующую классы - C++
Ребят помоги пожалуйста начинающему программисту. Использовать максимально возможное количество возможных функций (не менее 3), а...

Виртуальные базовые классы: какие требования предъявляются к иерархии наследования? - C++
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? ...

4
Tester123
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 21
24.05.2012, 21:17  [ТС] #2
Может у кого-то есть похожие задания, наработки? Помогите пожалуйста.
0
Юля_программист
468 / 123 / 19
Регистрация: 04.05.2012
Сообщений: 598
Записей в блоге: 1
25.05.2012, 15:00 #3
Вообще если мало, что знаешь, то всегда надо начинать с теории.
класс- это сложный тип данных объединяющий в себе переменных разного типа.

Не все могу, но кое-что подскажу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class GeometricalBody
{protected:
//тут твоя переменная, я пространствами имен не работала, не могу сказать как правильно делать
public:
float a,b,h,H;
void SetObjectName()
{//тут тело функции,придется подумать самому, я честно не поняла, что за имя надо присвоить
}
GeometricalBody();//конструктор без параметров
GeometricalBody(char name);//конструктор с параметром
{//тут тело конструктора, предполагаю, что оно совпадает с телом функции SetObjectName()
}
 
};
создание объекта происходит так:
C++
1
2
a.GeometricalBody();//в случае конструктора без параметров
а.GeometricalBody("Куб")//в случае с параметром
производные классы объявляются так
C++
1
2
3
4
class new:public GeometricalBody
{
//ну а тут пишешь что-то новое
};
Надеюсь чем-то помогла)
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.05.2012, 16:50 #4
Юля_программист,
C++
1
2
a.GeometricalBody();//в случае конструктора без параметров
а.GeometricalBody("Куб")//в случае с параметром
Что за звери?

Как бэ создание проходит несколько по-другому, а не попыткой явного вызова конструктора у уже судя по всему сконструированного объекта)
C++
1
2
GeometricalBody a;
GeometricalBody a("Куб");
Ну даже для примера юзать ключевое слово С++, в качестве названия класса - перебор.
C++
1
class new:public GeometricalBody
0
Tester123
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 21
25.05.2012, 18:36  [ТС] #5
Понимаю что надо с теории, но как всегда затянул и время пролетело, а теперь надо как-то сдать лабу...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 18:36
Привет! Вот еще темы с ответами:

Связать следующие классы в иерархию наследования: ArcherCharacter, Wizard, SwordsMan, LongRange - C++
Character (Персонаж), LongRange (Персонаж дальнего действия), Wizard (Маг), SwordsMan (Мечник), Archer (Лучник). #include <string> //...

Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг - C++
помогите написать программу: Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг....

Чем отличаются структуры для наследования интерфейса от структур для наследования реализаций? - C++
Дорогие программисты, во первых, хочу поздравить вас с Наступающим новым Годом! Я к вам обращаюсь с маленькой просьбой. Я никак не могу...

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void SetX(int...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
25.05.2012, 18:36
Ответ Создать тему
Опции темы

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