class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

STL

основы

введение
Инструментарий
Проекты в C++
Комментарий
Утверждения
Идентификаторы
Область видимости
Литералы
Типы данных, переменные
Константы, перечисления
Выражения и операции
Агрегатные типы
Указатели
Ссылки
Массивы
Строки
Управляющие операторы
Функции
Аргументы функции

ООП

Терминология
Определение классов
Константные методы
Статические члены
Наследование
Инкапсуляция
Полиморфизм
Инициализация и уничтожение объектов
this

прочее

шаблоны
макросы
динамическая память
исключения
rtti

Справочник по C++

Наследование

Механизм наследования позволяет создавать новые классы на основе существующих. В C++ возможно множественное наследование и виртуальное, при котором предотвращается повтороное вхождение базового класса в дочерние.

/* синтаксис наследование
struct|class имя_класса : 
[virtual] [public|private|protected] родительский_класс1
[, [virtual] [public|private|protected] родительский_классn, ...] 
{
// объявление членов и локальных типов
// ...
};
*/
#include <iostream>
using namespace std; 

//--------------------------------
// обычное наследование
struct A {
int a;	
A(){a=15;}
};

struct B: A {
int b;	
};

struct C: A {
int c;	
};


// множественное наследование
struct BC: B,C {
	
} bc;

//--------------------------------
// виртуальное наследование
struct VA {
int a;
VA(){a=15;}
};

struct VB:virtual VA {
int b;	
};

struct VC: virtual VA {
int c;
};

// класс VA будет включен один раз
struct VBC: VB,VC
{ } vbc;

int main() {
// сравним размеры классов,
// класс vbc все равно больше	
cout<<"sizeof(bc)="<<sizeof(bc)
<<"    sizeof(vbc)="<<sizeof(vbc)<<endl;

// ошибка, непонятно какой члена а
// из двух нужно вывести
//cout<<"bc.a="<< bc.a << endl;

// все правильно, ошибки нет
cout<<"vbc.a="<<vbc.a << endl;
return 0;
}

Рейтинг@Mail.ru