Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ При вычитании целочисленного типа неправильно вычисляется https://www.cyberforum.ru/ cpp-beginners/ thread1496239.html
Доброго времени суток. Вычитаю два массива и записываю в новый массив. m=chisob-chikl; получаетя ,что 8-18=-96. Что не так?
Замена элемента из множества C++
Подскажите с оптимальным решением задачи. Имеется динамический vector элементов для подстановки. std:vector<std::string> letters_rep; letters_rep.push_back("r"); letters_rep.push_back("u"); letters_rep.push_back("z"); letters_rep.push_back("w");
C++ Ассоциативный массив своими руками Подскажите, пожалуйста, как реализовать такую конструкцию: array = 324; https://www.cyberforum.ru/ cpp-beginners/ thread1496216.html C++ Stl vector как массив Есть функция принимающая указатель на массив и его длину и копирующая его в другой массив определенный указателем. void SetMass(float *pMass, int plengthMass) { mMass = new float(plengthMass); lengthMass = plengthMass; memcpy(mMass,pMass,sizeof(float)*plengthMass); } https://www.cyberforum.ru/ cpp-beginners/ thread1496214.html
C++ Копирование при полиморфизме
Всем доброго дня ! Почему при полиморфизме вызывается конструктор копировщик только базового класса (строка 70) ? Получаю ошибку. Мне нужна полноценная копия. Заранее спасибо !!!
C++ Нужно перевести программу с Visual basic на с++ ... https://www.cyberforum.ru/ cpp-beginners/ thread1496172.html
C++ Структура "Товар" https://www.cyberforum.ru/ cpp-beginners/ thread1496165.html
Описал структуру с двумя членами: имя и цена товара. Программа компилируется, но работает не правильно. Например, не выводит на экран все товары. Помогите разобраться почему. #include <iostream> #include <cstdlib> #include <cstring> #include <cctype> using namespace std; const int size = 100; struct str {
Список структур "Работник" C++
struct Rab { char *name; int vozrast; char *dolg; }; struct Stack { Rab elem;
C++ Найти наибольшую возрастающую подпоследовательность в массиве Здравствуйте. Требуется найти наибольшую возрастающую подпоследовательность в массиве (для 1 2 3 1 2 5 6 1 будет 1 2 5 6). Вот процедура.void Posled(float *arrayA, int n) //Поиск возрастающей подпоследовательности { int max = 1, i = 1; //max - кол-во элементов подпоследовательности int konec; //индекс последнего элемента подпосл. в массиве A do { int s = 1; while... https://www.cyberforum.ru/ cpp-beginners/ thread1496152.html C++ Отличие указателя от массива https://www.cyberforum.ru/ cpp-beginners/ thread1496151.html
Чем отличается wchar_t* strDelimit = L" "; от wchar_t strDelimit = L" "; Понятно что одно указатель, а второе массив, но на практике одно и тоже?
Лишние символы в конце строки, записанной в файл C++
Записываю текст в бинарный файл, но в файле нет каракуль а этот же текст. И плюс к тексту добавляться левые символы. (смотреть рисунок) #include #include using namespace std; void main() { char a={"Each individual state has its own sys-tem of public schools."}; char d; int x=0; x=strlen(a);
C++ По описанию пути к кладу определить точные координаты клада https://www.cyberforum.ru/ cpp-beginners/ thread1496093.html
Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где слово – одно из "North", "South", "East", "West", – задает направление движения, а число – количество шагов, которое необходимо пройти в этом направлении. Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало...
25 / 25 / 11
Регистрация: 07.12.2012
Сообщений: 169
09.07.2015, 22:54 0

Пишем свой класс, спецификатор доступа protected - C++ - Ответ 7857176

09.07.2015, 22:54. Показов 5095. Ответов 61
Метки (Все метки)

Ответ

Цитата Сообщение от hoggy Посмотреть сообщение
это нормально - иметь не виртуальную функцию-член.
которая для всех работает одинаково.

только причем здесь данные-члены?
Ну если у нас есть абстрактный класс, следовательно создать экземпляр этого класса не возможно.
Если в нашем классе есть методы, которые должны быть для наследников реализованы по разному, они объявленные как чистые виртуальные методы, иначе это просто методы.
Если чистый виртуальный метод должен быть реализацией (в наследуемом классе у перекрытого метода будет изменена область видимости на protected | private), а не интерфейсом в наследуемом классе, то он должен быть объявлен с областью видимости protected иначе, если использовать этот метод виртуальным вызовом, то вызов этого метода будет разрешен, независимо, какая область видимости этого метода в наследнике.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
class Foo {
public:
    virtual void Test() const = 0 ;    
};
 
class Bar : public Foo {
    void Test() const override
    {
         std::cout << "test";
    }
};
 
int main() {
    Foo *p = new Bar();
    p->Test(); // вызов функции будет разрешен
}
При расширении этого класса (наследуем интерфейс), переопределяя виртуальные методы при их реализации обращаясь к данным-членам суперкласса, зачем нам использовать get и set методы, если хочется работать напрямую? Почему не сделать в суперклассе данных защищенным, а в наследуемом сделать их закрытыми и при расширении работать с данными напрямую, а при работе извне -используя set и get методы?

Вернуться к обсуждению:
Пишем свой класс, спецификатор доступа protected C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2015, 22:54
Готовые ответы и решения:

Ошибка доступа access violation: почему класс-наследник не видит protected данные-члены класса-родителя?
Подскажите есть базовый класс в разделе protected разместил переменную, которая по идее должна быть...

Пишем свой чекер
Я хочу написать свой чекер, но не знаю с чего начать? Кто знает основные принцип работы чекеров...

Пишем свой OPC-server
Добрый день! У меня проблема с заданием в университете. Попросили разобраться с OPC-server. Я...

пишем свой троян с нуля
Всем привет)))соглашусь, что изобретаю велосипед, но хочется сделать все своими ручками не прибегая...

61
09.07.2015, 22:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2015, 22:54
Помогаю со студенческими работами здесь

Пишем свой интерпретатор языка BASIC
***************** Благодаря форуму и Evg в частности интерпретатор развивается, потихоньку...

Пишем свой первый Windows-драйвер
https://habrahabr.ru/post/40466/ Пытаюсь по уроку собрать и запустить первый драйвер Файл...

Пишем свой интерпретатор языка BASIC
Добрый день. Я смотрю, тут на форуме была тема коллективного написания интерпретатора BASIC на...

Спецификатор доступа и виртуальные функции
Как я понимаю, спецификатор доступа задается только в том классе, где функция объявляется...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru