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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Можно ли инстанцирование класса прописать в самом классе? - C++

14.04.2011, 08:27. Просмотров 1216. Ответов 14
Метки нет (Все метки)

Можно ли инстанцирование класса прописать в самом классе?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 08:27     Можно ли инстанцирование класса прописать в самом классе?
Посмотрите здесь:

Использование методов класса в самом классе - C++
Вообще есть класс нужно объедение все его методы в один метод. Пример: class Test{ public: int N; private: Test(){ ...

Инстанцирование шаблонного класса - C++
Уважаемые форумчане! Помогите в не сложном, как я полагаю, для Вас вопросе. Имеется шаблонный класс-контейнер оформленный в виде модуля...

Что нужно прописать в классе, чтобы никаким образом невозможно было создать от него объект? - C++
Добрый день. Задача: создать "статический класс". Подстажите, плз, что нужно прописать в классе, чтобы никаким образом невозможно было...

Можно ли писать int не в самом начале? - C++
а можно ли писать "int " не в начале программы, а где захочешь? посмотрите где у меня может быть ошибка?? #include <stdio.h> ...

Как прописать шаблонную функцию внутри шаблонного класса? - C++
Как объявить шаблонную функцию/*типа iterator*/ внутри шаблонного класса?

Инстанцирование шаблона - C++
Есть шаблонная очередь с использованием vector Как инстанцировать для своего класса, представляющего строку, изготовленную из...

Инстанцирование шаблона - C++
Существует шаблон следующего вида: template<class T, int size> void foo(T (&array)) { cout << size << endl; } И следующий...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 16:40     Можно ли инстанцирование класса прописать в самом классе? #2
Только статическое поле если.
Nick Alte
Эксперт С++
1628 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
14.04.2011, 19:31     Можно ли инстанцирование класса прописать в самом классе? #3
Класс не может содержать сам себя в качестве члена, что очевидно. Исключением, как правильно заметил Deviaphan, являются статические члены, которые объявляются отдельно. Но содержать ссылку или указатель на тот же самый класс - можно. А откуда брать объекты, на которые будут ссылаться эти указатели, уже вопрос реализации.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2011, 08:16  [ТС]     Можно ли инстанцирование класса прописать в самом классе? #4
Если член, то статик здесь и так напрашивается по задаче. Но может ли статик поле в качестве типа иметь сам класс, в котором объявлено? То есть допускается ли
C++
1
2
3
4
class A
{
 static A a;
};
? Кроме того, где у меня сказано, что это должен быть член?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 08:37     Можно ли инстанцирование класса прописать в самом классе? #5
taras atavin, про Singleton никогда не слышали?
C++
1
2
3
4
5
6
7
8
9
10
class Singleton {
public:
  static Singleton& getInstance() {
    static Singleton instance;
    return instance;
  }
 
private:
  Singleton() {}
};
Либо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Singleton {
public:
  static Singleton* getInstance() {
    if (instance == 0)
      instance = new Singleton();
 
    return instance;
  }
 
private:
  Singleton() {}
 
  static Singleton* instance;
};
 
Singleton* Singleton::instance = 0;
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2011, 08:39  [ТС]     Можно ли инстанцирование класса прописать в самом классе? #6
Кто такой синглетон?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 08:42     Можно ли инстанцирование класса прописать в самом классе? #7
Цитата Сообщение от taras atavin Посмотреть сообщение
Кто такой синглетон?
Гугл знает ответ. Википедия тоже.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2011, 08:43  [ТС]     Можно ли инстанцирование класса прописать в самом классе? #8
Это:
Цель
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Существенно то, что можно пользоваться именно экземпляром класса, так как при этом во многих случаях становится доступной более широкая функциональность. Например, к описанным компонентам класса можно обращаться через интерфейс, если такая возможность поддерживается языком.
? Мне нужен минимум один объект, а не ровно один, причём, этот обязательный объект должен быть создан с применением private конструктора.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 08:46     Можно ли инстанцирование класса прописать в самом классе? #9
taras atavin, используйте фабричный метод:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <boost/shared_ptr.hpp>
 
class Creatable {
public:
  static boost::shared_ptr<Creatable> create() {
    return boost::shared_ptr<Creatable>(new Creatable());
  }
 
private:
  Creatable() {}
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
20.04.2011, 09:15     Можно ли инстанцирование класса прописать в самом классе? #10
Цитата Сообщение от taras atavin Посмотреть сообщение
Но может ли статик поле в качестве типа иметь сам класс
Да. Не вижу препятствий.
josy
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 4
03.05.2011, 22:22     Можно ли инстанцирование класса прописать в самом классе? #11
Смотря что вы понимаете под инстанциацией. Если создание объекта, то можно, например с помощью автоматической (локальной) переменной в функции класса, оператора new. Или статической переменной внутри функции или статического члена класса (статический член того же типа что и класс, которому он принадлежит, вполне законен). Во всех случаях не имеет значения тип доступа к конструктору, ведь конструктор будет вызван самим классом, который имеет доступ в том числе и к приватным членам.
volovzi
04.05.2011, 12:07
  #12

Не по теме:

Чем больше читаю этот форум, тем больше меня поражает taras atavin.
Мало того, что он не умеет пользоваться поиском, так он ещё и программирует без компилятора О_о .

taras atavin
04.05.2011, 12:17  [ТС]
  #13

Не по теме:

volovzi, компил у меня есть, а не пользуюсь я средой.

volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
04.05.2011, 12:23     Можно ли инстанцирование класса прописать в самом классе? #14
taras atavin, почему бы тогда не скомпилировать пару коротких строк вместо того, чтобы создавать подобные темы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 12:30     Можно ли инстанцирование класса прописать в самом классе?
Еще ссылки по теме:

Массив класса в классе - C++
Вот код: #include &lt;iostream&gt; using namespace std; class CFirst { public: int m_n; int m_m; CFirst(){} };

Шаблон класса в классе - C++
Есть список(кольцевой) который содержит узлы(Node). Список - шаблон Узел(Node) по идее тоже должен быть шаблоном. Не понятно как...

Объект класса в классе - C++
Товарищи, помогите уже не знаю что делать!! Есть класс Point и класс Pixel, есть методы и там и там. В классе Pixel создаю объект типа...

Что такое инстанцирование? - C++
class A { ... }; A a; // Это уже инстанцирование A?

Объект класса в другом классе - C++
Здравствуйте! Недавно начал учить классы, прошу помогите мне. Мой написанный код не работает. Можете сказать, что с ним не так? ...


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.05.2011, 12:30  [ТС]     Можно ли инстанцирование класса прописать в самом классе? #15
Потому что и сами строки приплыли отсюда. Ну не мог я сам догадаться про поле. И что тогда тестить?
Yandex
Объявления
04.05.2011, 12:30     Можно ли инстанцирование класса прописать в самом классе?
Ответ Создать тему
Опции темы

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