Нарушитель
68 / 26 / 24
Регистрация: 23.10.2015
Сообщений: 26
1

Указатель в классе, указывающий на этот же класс

07.10.2016, 00:07. Показов 375. Ответов 4
Метки нет (Все метки)

Разбирал чужой код и нашел примерно такую конструкцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Sample {
public:
    Sample();
    virtual ~Sample();
 
    int Method();
 
protected:
    virtual void JustAnotherMethod();
 
private:
    static Sample* _smpl; // Это
}
В каких случаях указывают на класс прямо в этом же классе? Для чего это нужно и какое этому есть практическое применение? Очень хочу еще ваши примеры.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2016, 00:07
Ответы с готовыми решениями:

Объявить в классе-наследнике указатель, указывающий туда же, куда указывает указатель в классе-родителе
Здравствуйте. Имеется базовый класс MainWindow: #ifndef MAINWINDOW_H #define MAINWINDOW_H...

можно ли создать указатель на класс в этом же классе?
у меня проблема: я пытаюсь создать динамический массив путем задания класса(в моём случае запись не...

Вызов виртуальной функции, определённой в дочернем классе, через указатель на базовый класс
Как вызвать виртуальную функцию, определённую в дочернем классе, через указатель на базовый класс?...

Благодаря опережающему объявлению класса можно создать только УКАЗАТЕЛЬ на этот класс; так ли это?
class B; class A{ A(); ~A(); B* b; //А вот так не компилится //B b_0; };

4
7077 / 6082 / 2770
Регистрация: 14.04.2014
Сообщений: 26,129
07.10.2016, 09:02 2
Когда списки делают обычно указатель такой есть, только он не static. По этому фрагменту не понятно предназначение.
0
Нарушитель
68 / 26 / 24
Регистрация: 23.10.2015
Сообщений: 26
17.10.2016, 04:31  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
По этому фрагменту не понятно предназначение.
Если точнее, то строка 147 вот этого файла:
https://github.com/erengy/wind... n_window.h

У меня есть предположения, что это Singleton. Так ли это?
0
260 / 208 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
17.10.2016, 05:38 4
Цитата Сообщение от nmcf Посмотреть сообщение
Когда списки делают обычно указатель такой есть, только он не static
деревья, очереди и проч. АТД на основе списков... тоже не static
Цитата Сообщение от Atakai Посмотреть сообщение
У меня есть предположения, что это Singleton
не верно, т.к.
C++
1
2
3
public:
    Sample();
    virtual ~Sample();
в синглтоне конструкторы и деструкторы
C
1
2
3
private:
    Singleton() { ... }  // конструктор недоступен
    ~Singleton() { ... } // и деструктор
0
Любитель чаепитий
3627 / 1714 / 532
Регистрация: 24.08.2014
Сообщений: 5,795
Записей в блоге: 1
17.10.2016, 11:16 5
Цитата Сообщение от Atakai Посмотреть сообщение
Если точнее, то строка 147 вот этого файла
Могу только предположить, что static тут используется потому, что активное окно может быть одним единственным.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2016, 11:16

Char*str = "Hello, world"; Указатель, указывающий на эту строку, хранится в стэке, а где хранится сама строка?
нужно ли освобождать память, выделенную под str?

В классе OnlyData написать метод, который выводит значение переменной i и вызвать этот метод в том же классе
Я конечно понимаю, что задача оч простая, но все же. В классе OnlyData нужно написать метод,...

Если в класс нужно передать указатель на указатель на массив строк неизвестной длинны?
Как проинициализировать массив строк wchar_t * (произвольного размера) , если его нужно передать в...

наследование в классе нескольких функций из другого или как добавить функцию находящуюся в классе в другой класс
есть класс. есть второй класс. как добавить функцию находящуюся в классе в другой класс(второй) при...

Статический указатель в классе
Не могу разобраться как создать статический указатель на другой класс, как инициализировать его. ...

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B?
#include <windows.h> #include <iostream> using namespace std; //Вот главный класс class A{...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.