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

C++ Списки и наследование.Зарание спасибо! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ STL vector,list http://www.cyberforum.ru/cpp-beginners/thread42362.html
У меня 2 вопроса: 1) можете рассказать,как подробно работает reverse_iterator?Создал вектор,хочу его распечатать в обратном порядке следования индексов,а он мне вообще то ошибку выдает,что я вышел за пределы массива,то печатает не в обратном порядке. В литературе как работает подробно reverse_iterator не нашел,везде просто написано,что такой итератор. Смотрел "STL для программистов на C++...
C++ Ключевые слова Написать программу, которая при вводе с клавиатуры буквы выводит ключевое слово языка Си, начинающееся с данной буквы. Например, при введении буквы "b" печатает "break". Результаты поместить на экран и в файл. Просто не знаю как сделать... http://www.cyberforum.ru/cpp-beginners/thread42327.html
C++ Слова в обратном порядке (!не палиндром!)
Задача состоит в следующем: определить символьный массив и ввести его с клавиатуры, затем подсчитать колличество символов 'e' (с этим проблем нет, но из программы уже не выкину) и выести слова в предложении в обратном порядке, типа мама мыла раму - раму мыла мама. Моя программа: #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> void main() {clrscr (); char str;...
Двумерный массив C++
Создать двухмерный массив целых чисел. Испольуя массив указателей. записать в него адресса положительных елементов двухмерного масива. Пожалуста я на экзамене!!
C++ Как возвращать массив структур? http://www.cyberforum.ru/cpp-beginners/thread42183.html
Понимаю тема уже поднималась, но я всёравно не могу понять... Нужно возвратить массив из структур. Знаю что нужно делать через указатели... вот код: struct trgstr { char name; int x;
C++ Нужно вставить в прогу правильную формулу(С++) Привет всем)) Помогите пожалуйста вставить в прогу правильную формулу. Вот сама задача: Должны быть реализованные подпрограммы рисования дуги круга заданной: координатами центра, координатами стартовой точки и величиной угла вот сам код проги: #include <graphics.h> #include <stdio.h> #include <math.h> #include <conio.h> подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
30.06.2009, 20:19     C++ Списки и наследование.Зарание спасибо!
Хорошо, давай с самого начала.
То что ты написал - бред.
Давай разбираться.
1. Наследование, это отношение между классами когда один (производный) класс наследует (копирует) структуру и поведение другого (базового) класса.
Разберемся на простом примере:
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
// Базовый класс
class Base
{
public:
  int Foo();
};
 
// Класс производный от Base
// Он уже содержит функцию Foo, т.к. копирует ее из базового класса Base
class Derived : public Base
{
public:
  int Bar();
};
 
int main()
{
  Base base;
  Derived derived;
 
  base.foo();    // OK
  derived.foo(); // OK (foo копируется из базового класса)
  derived.bar(); // OK
  
  base.bar();    // Ошибка, т.к. операции bar нет в описании класса Base 
}
С учетом вышесказанного, исправляем ошибки в классах студента и аспиранта (а заодно забываем про существование транслита и открываем английский словарь, дабы твой код мог понять программист даже из Китая):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Student
{
public:
  Student();
  ~Student();
 
  Student(char*, char*, char*, char*);
  void Print();
};
 
class PostGraduateStudent : public Student
{
public:
    PostGraduateStudent();
    PostGraduateStudent(char*,char*,char*,char*);
    ~PostGraduateStudent();
};
Мы специально пока не описываем закрытую и защищенную части, потому что мы должны разработать в первую очередь интерфейс (поведение) класса, а уж потом при необходимости добавить все что нужно для поддержки поведения класса.
2. Идем далее...
Что означает операция Print? Распечатать студента? Это не присущая студентам операция, убираем...
3. Если у меня есть объект класса Student, как я получу информацию о нем (имя, фамилию)? В твоей версии - никак!
Добавляем операции, которые позволяют получить интересующую нас информацию. Кто он аспирант или студент, пока не рассматриваем.
4. Студент может сменить имя, фамилию (например при регистрации брака). Т.е. необходимо внести в класс Student операции позволяющие производить такие действия.

С учетом п. 2, 3 и 4, получаем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Student
{
public:
  Student();
  Student(char*, char*, char*); 
  
  ~Student();
 
  const char* Surname () const;  // возвращает фамилию студента
  const char* Name    () const;  // возвращает имя студента
  const char* Lastname() const;  // возвращает отчество студента
 
  void SetSurname (const char*); // Установка новой фамилии
  void SetName    (const char*); // Установка нового имени
  void SetLastname(const char*); // Установка нового отчества
private:
  ... 
};

Не по теме:

Блин, что то я расписался...
Позже продолжу, если тебе интересно...


А вообще книга Г. Буч - Объектно-ориентированный анализ и проектирование - то, что нужно, если тебе интересна тема ООП.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru