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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 19:40   #1
Vasyl'eva
 
Регистрация: 04.12.2011
Сообщений: 3
По умолчанию Наследование С++

Здравствуйте. Помогите,пожалуйста с заданием,многое сделано, осталось написать void main, с чем и возникли трудности.
Задание: разработать и реализовать базовый класс(Base),объед.св-ва перечисленных классов. Base должен содержать не менее 2 полей и 2 методов.
Создать перечисленные классы как производные для Base с различным
уровнем доступа, переопределить в них 1 метод базового класса.
Объявить и описать собственные методы в производных классах.
Продемонстрировать работу класса.
Производные классы: Студент, преподаватель, заведующий кафедрой.
Код:
#include <conio.h>
#include <stdio.h>
#include <string.h>

class Person{ // Base
public:
	void ShowPerson(void);
	Person(char *, char *, int); 
    //Person (){};
protected:	
	
	int age;
	char name [30];
	char position [50];

};

Person::Person(char *name, char *position,int age)// конструктор

{ 
	strcpy(Person::name, name); 
	strcpy(Person::position, position); 
	Person::age = age; 
}

void Person::ShowPerson (void)// основной метод для классов(переопределяемый впоследствии)
{
	printf ("Имя: ", name);
	printf ("/nДолжность: ", position);
	printf ("/nВозраст: ", age);
}

class Student: public Person {
public:
	Student (char *, char *, int, int);
	void ShowPerson (void);
	void Session_S_Mark (bool _s) // метод для класса "Студент"
	{
		if (_s == true) grant = 1600;
		else grant = 0;		
	}
private:
	int grant;
};

Student::Student(char *name, char *position, int age, int grant) : Person (name, position, age)// конструктор "Студент"
{
	Student::grant = grant;
}

void Student::ShowPerson(void) 
{
	printf ("Имя: ", name);
	printf ("/nДолжность: ", position);
	printf ("/nВозраст: ", age);
	printf ("/nСтипендия: ", grant);
}

class Lector: protected Person{
public:
	Lector (char *, char *, int, int);
	void ShowPerson (void);
	void lections();

private:
	int salary;
};

Lector::Lector (char *name, char *position, int age, int salary) : Person (name, position, age)
{
	Lector::salary = salary;
}

void Lector::ShowPerson(void)
{
	printf ("Имя: ", name);
	printf ("/nДолжность: ", position);
	printf ("/nВозраст: ", age);
	printf ("/nЗаработная плата: ", salary);
}
class Chair: private Person {
public: 
	Chair (char *, char *, int , int, int);
	void ShowPerson(void);
	void Taking_tricks (bool _t)
	{
		if (_t == true) salary = 0;
	}
private: 
	int trick;
	int salary;
};

Chair::Chair (char *name, char *position, int age, int trick, int salary) : Person (name, position, age)
{
	Chair::trick = trick;
	Chair::salary = salary;
}

void Chair::ShowPerson(void)
{
	printf ("Имя: ", name);
	printf ("/nДолжность: ", position);
	printf ("/nВозраст: ", age);
	printf("/nЗаработная плата: ", salary);
	printf ("/nРазмер взятки: ", trick);
}

void main ()
{
	getch ();
}
Vasyl'eva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование. ISV-777 Общие вопросы по Java, Java SE, Kotlin 1 05.12.2011 22:31
Наследование в С++ 3AKPbIBAKA Помощь студентам 3 24.11.2010 16:38
Наследование Сергей089 Помощь студентам 6 07.02.2010 12:04
Наследование на C++ dziga1989 Помощь студентам 5 22.10.2009 11:25
Наследование beregok Общие вопросы C/C++ 1 04.07.2009 22:39