Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2010, 23:01   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение классы.наследование.жидкости

Нужно создать класс жидкость(liquid), имеющий поля название и плотность. В нем - методы переназначения и изменения плотности. Так же нужно создать производный класс Alcohol(спирт), имеющий крепость. В нем - определить методы переназначения и изменения крепости.

Как тут логически разобратся. Что нужно переназначать в обоих классах? Что вообще имеется ввиду под методом "переназначать". ЧТо должно связывать эти 2 класса? А может быть метод "переназначение" должен быть общий у 2ух классов?
Код:
class Liquid
{
private:
	char *name;
	int density;//плотность
public:
	void CLperenaznachenie();
	void DensityChange();
};
class Alcohol:public Liquid
{
private:
int fortress; //крепость
public:
	void CAperenaznachenie();
	void FortressChange();
};
zhenya.ya вне форума Ответить с цитированием
Старый 22.10.2010, 23:29   #2
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

ну ты их более мене создал
теперь их надо определить
хотя тут наверное имется виду либо виртуальные функции либо переопределние
Имею хитрый план по личному обогащению

Последний раз редактировалось _ILYA_; 22.10.2010 в 23:32.
_ILYA_ вне форума Ответить с цитированием
Старый 22.10.2010, 23:38   #3
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

Цитата:
хотя тут наверное имется виду либо виртуальные функции либо переопределние
Для чего мне это нужно? Я вот и не понимаю логики. Как должны быть связаны классы.
zhenya.ya вне форума Ответить с цитированием
Старый 23.10.2010, 08:57   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Все вопросы к преподавателю. Что имелось ввиду в задании известно только ему.
pu4koff вне форума Ответить с цитированием
Старый 23.10.2010, 09:52   #5
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

Чаще всего под термином"переназначать" подразумевают создать в классе наследнике
Код:
class Alcohol:public Liquid
метод (функцию) которая заменяет функцию базового класса, но в данном случае мне кажется что условие (задание) составлено не грамотно и допускает двойное, тройное толкование, по этому и дать тебе ответ затруднительно. Уточни условия у преподавателя.
Имею хитрый план по личному обогащению
_ILYA_ вне форума Ответить с цитированием
Старый 23.10.2010, 10:18   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вашу ж налево, переназначать - это методы set/get. Они должны быть открытыми, а вот поля плотность и крепость - защищенными (protected), чтобы поля базового класса были доступны производному.
MaTBeu вне форума Ответить с цитированием
Старый 23.10.2010, 10:42   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Вашу ж налево, переназначать - это методы set/get. Они должны быть открытыми, а вот поля плотность и крепость - защищенными (protected), чтобы поля базового класса были доступны производному.
set - это изменять значение. get - узнавать текущее значение. А что такое переназначать?
pu4koff вне форума Ответить с цитированием
Старый 23.10.2010, 13:52   #8
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

хм... и у каждого из обоих классов долже быть свой метод "сет" ?
zhenya.ya вне форума Ответить с цитированием
Старый 23.10.2010, 14:13   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
class Liquid
{
private:
	char *name;
	int density;//плотность
public:
	void CLperenaznachenie();
public:
	char* get_name() const;
	void set_name(char const* new_name);
	int get_density() const;
	void set_density(int new_density);
};
class Alcohol:public Liquid
{
private:
int fortress; //крепость
public:
	void CAperenaznachenie();
public:
	int get_fortress() const;
	void set_fortress(int new_fortress);
};
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программой для расчета объема жидкости в горизонтальной цилиндрической емкости. boltimur Фриланс 17 27.05.2015 09:04
C++ Классы (Наследование) werser Помощь студентам 3 15.12.2009 21:30
Классы(абстрактный и наследование) Пепел Феникса Общие вопросы C/C++ 6 02.11.2009 01:18
Классы и наследование. Scratch Общие вопросы C/C++ 9 27.09.2008 16:03
помогите создать апплет - Измерение коэффициента вязкости жидкости Mitron Общие вопросы по Java, Java SE, Kotlin 1 29.04.2008 20:14