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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 15:06   #1
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию наследование

Добрый день!
Как разработать и реализовать базовый класс (Base), объединяющий свойства перечисленных классов. Класс Base должен содержать не менее 2 полей и не менее 2 методов. Создать перечисленные классы как производные для базового класса (Base) с различным уровнем доступа, переопределить в них 1 метод базового класса. Объявить и описать собственные методы в производных классах. Продемонстрировать работу классов.
(студент, преподаватель, заведующий кафедрой.)
настюх вне форума Ответить с цитированием
Старый 14.11.2011, 15:32   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Как разработать и реализовать базовый класс (Base), объединяющий свойства перечисленных классов.
Как, как? Да как не фиг делать - грамотно формулируете задание и то, что у Вас не получается (конкретно, что именно не выходит). Заодно указываете язык программирования. А то мою шапочку телепата собака потрепала - не вижу Ваших мыслей.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.11.2011, 18:55   #3
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию

Язык С++.просто примерный код программы...
настюх вне форума Ответить с цитированием
Старый 26.11.2011, 14:18   #4
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию

Здравствуйте!
Я начала делать примерный код программы:разработать и реализовать базовый класс (Base), объединяющий свойства перечисленных классов. Класс Base должен содержать не менее 2 полей и не менее 2 методов. Создать перечисленные классы как производные для базового класса (Base) с различным уровнем доступа, переопределить в них 1 метод базового класса. Объявить и описать собственные методы в производных классах. Продемонстрировать работу классов.
(студент, преподаватель, заведующий кафедрой.)
Код:
# include <iostream>
using namespace std;
class student
{
public:
	student(){cout<<"конструктор student\n";}
	~student(){cout<<"деструктор student\n";}
};
class teacher
{
public:
	teacher(){cout<<"конструктор teacher\n";}
	~teacher(){cout<<"деструктор teacher\n";}
};
class head
{
public:
	head(){cout<<"конструктор head\n";}
	~head(){cout<<"деструктор head\n";}
};
class Base
{
}
можно узнать правильно ли я начала?
настюх вне форума Ответить с цитированием
Старый 26.11.2011, 15:01   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

не совсем
Цитата:
Класс Base должен содержать не менее 2 полей и не менее 2 методов.
Код:
class base
{
public:
	base(){}
	~base(){}
	
	string getSurname();
	string getName();
	void setSurname(string value);
	void setName(string value);

private:
	string name;
	string surname;
};

void base::base() {}
void base::~base() {} // тут могу ошибаться

string base::getName() { return name; }
stirng base::getSurname() { return surname; }

void base::setName(string value) { if (value != name) name = value; }
void base::setSurname(string value) { if (value != surname) surname = value; }
Это как пример, тут по любому есть ошибки. Пусть меня поправят знающие люди.

и от класса base наследуйте остальные
psycho-coder вне форума Ответить с цитированием
Старый 26.11.2011, 15:06   #6
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию

А классы студент,преподаватель и заведующий правильно описала или их не надо??
И можно узнать,что значат эти строки:
Код:
string base::getName() { return name; }
stirng base::getSurname() { return surname; }

void base::setName(string value) { if (value != name) name = value; }
void base::setSurname(string value) { if (value != surname) surname = value; }
настюх вне форума Ответить с цитированием
Старый 26.11.2011, 16:03   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

классы студент,преподаватель и заведующий нужно наследовать от base
например:
Код:
class student: public base
{
}
Цитата:
что значат эти строки:
Эти строки получения данных их полей name и surname и их установки.
psycho-coder вне форума Ответить с цитированием
Старый 27.11.2011, 13:25   #8
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию

Вот я переписала..Только не знаю как переопределить метод...
Код:
# include <iostream>
using namespace std;
class Base
{
public:
	Base(){}
	~Base(){}
	
	string getSurname();
	string getName();
	void setSurname(string value);
	void setName(string value);

private:
	string name;
	string surname;
};

class Student:public Base
{
public:
	Student(){cout<<"конструктор Student\n";}
	~Student(){cout<<"деструктор Student\n";}
};
class Teacher:protected Base
{
public:
	Teacher(){cout<<"конструктор Teacher\n";}
	~Teacher(){cout<<"деструктор Teacher\n";}
};
class Head:private Base
{
public:
	Head(){cout<<"конструктор Head\n";}
	~Head(){cout<<"деструктор Head\n";}
};
настюх вне форума Ответить с цитированием
Старый 27.11.2011, 13:54   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Переопределение методов (полиморфизм)
psycho-coder вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование на C++ Dead Romantic Фриланс 6 31.05.2011 11:35
Наследование C++ Dead Romantic Помощь студентам 1 29.05.2011 13:30
Наследование alex_triton Общие вопросы C/C++ 0 19.10.2009 20:25
Наследование beregok Общие вопросы C/C++ 1 04.07.2009 22:39