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

Как обратится к обьекту класса, являющегося наследником абстрактного класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Линейный поиск в массиве структуры http://www.cyberforum.ru/cpp-beginners/thread1508038.html
Нужно с помощью линейного поиска искать в готовом массиве структуры значение вводимое с клавиатуры. Напишите шаблон , по которому это можно реализовать. Спасибо.
C++ Windows боксы (Окна, формы) Приветствую уважаемые пользователи cyberforum! Сразу не знаю как правильно называется это. Но как можно реализовать окна на Windows? http://www.cyberforum.ru/cpp-beginners/thread1508019.html
C++ Не могу осознать причину ошибки
Ну, в общем, читаю, такой, Страуструпа и прогаю малеху его примеры. Вот реализация одного из них: #include<iostream> char * strcpy1(char * dst, const char * src){ while (*dst++ = *src++) ; return dst; } int main()
Строка string. Не присваивается новое значение C++
Есть строка: string str_in = "A"; Она используется в созданной мной функцией как один из аргументов: fuction(arg1,arg2,str_in,arg4); Внутри функции значение строки меняется: char sim; //string m;
C++ Наследование методов http://www.cyberforum.ru/cpp-beginners/thread1507978.html
Может мне стоит книжку почитать или получше подумать над структурой, но вопрос вот: Есть у нас древо классов: base > s2 > s3 > s4 > ... И есть в base virtual void f(){ _act1_ } А в s2 virtual void f(){ _act2_ } А в s3 должен обратно быть метод base::virtual void f(){ _act1_ } И чтобы s4 также использовал base::virtual void f(){ _act1_ } Т.е. переопределение виртуального должно работать...
C++ Класс Singletone Здравствуйте! Продолжаю готовиться к экзамену по С++. На последнем уроке вкратце рассказали про класс Singleton, но я расслабился и слушал невнимательно, так как урок был последний. Одним словом, посоветуйте хороший источник, где рассказывается про класс Singletone, где легко и понятно объясняется, от простого к сложному, с примерами на С++ на каждом этапе. Желательно на русском языке. ... подробнее

Показать сообщение отдельно
DrOffset
6419 / 3793 / 877
Регистрация: 30.01.2014
Сообщений: 6,583
01.08.2015, 15:18     Как обратится к обьекту класса, являющегося наследником абстрактного класса
Цитата Сообщение от Avazart Посмотреть сообщение
Дело не в защите, а логике вешей. Когда говоришь хочу именно это и получаешь что что просишь без всяких довесков.
Именно так. Логика тут едина. Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Base {};
 
class C : public Base
{
public:
    static std::unique_ptr<C> create()
    {
        std::unique_ptr<C> x(new C());
        x->v = 10;
        return x;
    }
    
private:
    C() {}
    
    int v;
};
Статический метод имеет доступ ко всем данным в классе. Пример компилируется.
Теперь делаем так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Base {};
 
class C : public Base
{
public:
    friend std::unique_ptr<C> create();
   
private:
    C() {}
    
    int v;
};
std::unique_ptr<C> create()
{
    std::unique_ptr<C> x(new C());
    x->v = 10;
    return x;
}
Что изменилось с точки зрения логики? Ничего. Вдумайся в это! Мы просто внесли внешнюю функцию в интерфейс класса. Она стала равноценна функции класса. Внес ее сам класс, он это решил. Здесь нет нарушения инкапсуляции, есть другой подход к организации интерфейса. У него естественно меньший приоритет, потому что он не такой естественный, но логически правила одинаковы.
 
Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru