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

Обсудим наследование в C++? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сделать четные биты равными нечетным и наоборот http://www.cyberforum.ru/cpp-beginners/thread794286.html
нужна помощь с задачей. Используя битовые операций в числе типа unsigned int сделать так, чтобы четные биты стали равны нечетным, а нечетные четным.
C++ Не компилируется старая программа Здравствуйте. У меня появилась проблема с запуском старой программы на С++ XE2 которая была написана на С++ XE1. При компилирование выкидывает ошибку Fatal: Unable to open file 'RAVE90VCL.LIB'. Скорей всего эта ошибка возникает и за того, что в XE2 встроен Rave Reports версии 10, а в XE1 Rave Reports версии 9. Я использовал этот компонент для создания отчётов, но вот не подумал, что новая версия... http://www.cyberforum.ru/cpp-beginners/thread794280.html
C++ с++ двумерный массив
уважаемые программисты прошу помочь с программой на двумерный массив т.к. я не в силах это сделать!!! нужно создать функцию к этой программе: #include<iostream.h> #include<math.h> void main() { int i,j,c; int a; for(i = 0; i < 3; i++) {
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
Из заданного множества точек на плоскости выбрать три разные точки A, B, C, так, чтобы внутри треугольника ABC содержалось максимальное количество точек этого множества. Помогите решить, пожалуйста.
C++ Найти максимальный элемент матрицы, номер строки и столбца, где он расположен http://www.cyberforum.ru/cpp-beginners/thread794260.html
Описать функцию, дающую по вещественной матрице размера 20х20 и целому k(1<=k<=20) значение максимального элемента k-ой строки матрицы, номер минимального элемента k-ой строки и номер минимального элементаk-го столбца, найти максимальный элемент матрицы, номер строки и столбца минимального элемента матрицы. Может знает кто, как это решить?)
C++ Написать подпрограмму сортировки массива Написать подпрограмму сортировки массива сортировка обменом(метод пузырька) последовательно сравниваются пары соседних элементов x(k) и x(k+1) (k=1, n-1), если x(k)>x(k+1), то они переставляются. Прототип: void f(int*a, int n); параметры: а- указатель исходного массива n- размер исходного массива подробнее

Показать сообщение отдельно
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
06.03.2013, 22:27  [ТС]     Обсудим наследование в C++?
Kastaneda, gray_fox, silent_1991, привет!
Случайно наткнулся на интересный способ применения виртуального наследования.

Используется для того, чтобы запретить наследование от какого-нибудь вашего класса. Вот листинг:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template < class FinalClass > // сюда будет передаваться имя класса, от которого нельзя наследоваться
class LockInheritanceFrom   {
    friend FinalClass; // FriendClass'у необходим доступ к закрытому конструктору
    LockInheritanceFrom()   {   }
};
 
// объявляем класс, запрещая наследование от него (прикольно, что в код самого класса ничего не нужно вносить) :
class SomeClass: public virtual LockInheritanceFrom < SomeClass >
{
};
 
// пытаемся объявить наследника от нашего класса
class Derived: public SomeClass
{
};
 
int main()
{
    SomeClass obj;
    //Derived d; // ошибка компиляции при попытке создания объекта, наследующего от класса, от которого наследовать запретили
    return 0;
}
Вся фишка завязана на том, что конструктор самого базового виртуального класса может вызываться лишь листовым классом иерархии. А из-за того, что созданный нами Derived листовой, но конструктор базового класса - закрыт, использование класса Derived невозможно.

Раньше было бы, наверное полезно где-то использовать такой механизм. Но в нынешнем стандарте появился final))) Скорее бы новый стандарт нашел свое отражение в разных реализациях)))

Подумал, быть может вам будет интересно, код, вроде, только необходимое содержит
 
Текущее время: 04:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru