Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 9
1

Создание объекта класса

06.02.2019, 09:08. Просмотров 865. Ответов 4
Метки нет (Все метки)

Есть такой класс:
C++
1
2
3
4
5
class CSomeClass
{
public:
    void SomeMethod();
};
И вот как можно создать объект этого класса:

1.
C++
1
CSomeClass object;
2.
C++
1
CSomeClass* pObject = new CSomeClass(); // или через unique_ptr, без разницы
3.
C++
1
2
3
4
5
CSomeClass* Instance()
{
    static CSomeClass object;
    return &object;
}
С первым примером все ясно, со вторым тоже, а вот с третьим мне не понятно. Видел в некоторых исходниках, что разработчики прибегали именно к созданию статичного метода, который создает статичный объект этого класса и возвращает его адрес. Но я не понимаю, почему нельзя было просто создать объект как в первом примере. Может быть есть какая-то весомая разница? И вообще, как лучше создать объект: объявить его в глобальной области видимости как на первом примере или создать функцию как в третьем?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2019, 09:08
Ответы с готовыми решениями:

Возможно ли создание объекта шаблонного класса в функции этого класса?
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон...

Создание объекта класса с полем являющимся объектом другого класса
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у...

Создание объекта класса в методе этого же класса
собственно вопрос. можно ли создавать объект класса в методе того же класса? насколько это...

Создание объекта класса
Создал свой класс с именем и фамилией, не могу создать объект этого класса, при проверке на ошибки...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
4
2712 / 1879 / 556
Регистрация: 05.06.2014
Сообщений: 5,457
06.02.2019, 09:43 2
Цитата Сообщение от bezimec Посмотреть сообщение
Но я не понимаю, почему нельзя было просто создать объект как в первом примере.
Потому что если первый пример сунуть в .h хедер, а хедер заинклудить в два разных cpp файла, то компилятор будет ругаться на множественное объявление переменной.
0
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 9
06.02.2019, 10:27  [ТС] 3
Цитата Сообщение от Renji Посмотреть сообщение
Потому что если первый пример сунуть в .h хедер, а хедер заинклудить в два разных cpp файла, то компилятор будет ругаться на множественное объявление переменной.
ну для первого примера в основном создают объект в .cpp файле и суют extern в .h
0
14089 / 7559 / 1793
Регистрация: 30.01.2014
Сообщений: 12,649
06.02.2019, 11:16 4
Цитата Сообщение от bezimec Посмотреть сообщение
С первым примером все ясно, со вторым тоже, а вот с третьим мне не понятно.
Синглтон
1
Mental handicap
1243 / 621 / 171
Регистрация: 24.11.2015
Сообщений: 2,426
06.02.2019, 11:54 5
Цитата Сообщение от bezimec Посмотреть сообщение
с третьим мне не понятно
Добавлю Lazy initialization
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2019, 11:54

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Создание объекта класса
Как можно создать объект класса вне функции int main()? Допустим у меня есть 4 файла myclas.h...

Создание объекта класса
Я пишу программу, и столкнулся с одной проблемой. Суть следующая. Ниже прикрепил примерную схему...

Создание объекта класса
Здравствуйте, подскажите пожалуйста в чем разница между Test t(блаблабла); и Test *t = new...

Создание объекта класса из потока
Всем привет. Пишу простенькую игрушку, понадобилось для нее подобие движка(сразу оговорюсь: для...


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

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

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