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

Как избежать не нужной пустой реализации виртуальных методов в базовом классе? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделении ошибок в Visual С++ 6.0 http://www.cyberforum.ru/cpp-beginners/thread913397.html
Может - ли Visual С++ 6.0 выделять ошибки?
C++ Программа (ошибка) Вот написал программу: #include <iostream> #include <cstdlib> #include <cstring> using namespace std; void Lalka() { char Ky_Gudbuy; cout << "Ky ky, lalka!(Ky, Gudbuy)" << endl; http://www.cyberforum.ru/cpp-beginners/thread913392.html
Переполнение (Stack overflow) C++
Подскажите, пожалуйста, почему при перемещении int n, a, k; в локальную область программа при открытии консоли выдаёт ошибку и не работает, а в глобальной области всё в порядке? Отладка показывает...
C++ Фундаментальные типы данных
В магазине по продаже транспортных средств имеются в прода¬же велосипеды, автомобили, лодки. Известна цена каждого изделия. Определить: 1) количество двухколесных велосипедов; 2) стоимость всех...
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить http://www.cyberforum.ru/cpp-beginners/thread913343.html
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Минимальный элемент массива; 2. Сумму элементов массива, расположенных между первым и последним положительными...
C++ Найти среднее арифметическое листьев int sumOfLeaves(tree* root){ if(!root) return 0; if(root->left== NULL && root->right == NULL) return root->key; return sumOfLeaves(root->left) + sumOfLeaves(root->right); } int... подробнее

Показать сообщение отдельно
FarStar
Заблокирован

Как избежать не нужной пустой реализации виртуальных методов в базовом классе? - C++

27.06.2013, 17:24. Просмотров 594. Ответов 10
Метки (Все метки)

Для наглядности:
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
27
28
class BASE
{
    public:
        BASE();
        ~BASE();
 
        virtual void Do();
 
        void NonVirtual();
};
 
//ДЛЯ ВИРТУАЛЬНОЙ ФУНКЦИИ Do ПРИХОДИТСЯ ДЕЛАТЬ ВСЕГДА
//ПУСТУЮ РЕАЛИЗАЦИЮ ТИПА:
void BASE::Do()
{
 
}
//Иначе ошибка типа: error LNK2001: unresolved external symbol "public: virtual void __thiscall BASE::Do(void)" (?Do@BASE@@UAEXXZ)
//МНЕ НЕ НУЖНА РЕАЛИЗАЦИЯ ЭТОЙ ФУНКЦИИ В БАЗОВОМ КЛАССЕ, Я ЕЁ РЕАЛИЗУЮ ВЕЗДЕ ПО РАЗНОМУ В НАСЛЕДНИКАХ!
 
class CHILD : public BASE
{
    public:
        CHILD();
        ~CHILD();
 
        void Do();
};
ну собственно вопрос в том, как избежать этой реализации? Можно сделать чисто виртуальной, но у меня в базовом классе есть и не виртуальные методы и мне нужен объект базового класса - так что не прокатит.... помогите нубасу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru