Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
NanFe
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 24
#1

Как объявить объект класса, не создавая его?

04.11.2015, 21:59. Просмотров 302. Ответов 6
Метки нет (Все метки)

Нужно объявить объект класса, но чтобы при этом не вызывался конструктор? Просто потом хочу его создать через конструктор копирования. Сразу через копирование никак.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2015, 21:59
Ответы с готовыми решениями:

Как пользователю объявить объект класса?
Например этот класс-товар. И как же добавлять товар(объект) пользователю, да и...

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

Как объявить редактируемый список char в интерфейсе класса и как его заполнить в конструкторе?
Есть несколько непонятных мне моментов связанных с тем как использовать char в...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого...

Можно ли создать объект класса с таким же именем как у самого класса?
Можно ли создать объект класса с таким же именем как у самого класса? Ну или...

6
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
04.11.2015, 22:09 #2
Цитата Сообщение от NanFe Посмотреть сообщение
Нужно объявить объект класса, но чтобы при этом не вызывался конструктор?
Да.

Заходя наперёд полагаю, что подход к решению проблемы выбран неверный.
1
Nick Alte
Эксперт С++
1647 / 1019 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.11.2015, 22:13 #3
Почему бы тогда для начала объяснить, зачем необходимо, чтобы объект существовал от момента объявления до момента конструирования? Какой смысл в этом промежутке, во время которого он недоделанный, что с ним будет происходить и с какой целью? Ведь если необходимости в таком "призрачном" существовании нет, то и создавать объект имеет смысл уже тогда, когда есть, из чего его копировать.
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.11.2015, 22:31 #4
NanFe, может быть тебе нужна "ленивая инициализация"?
0
NanFe
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 24
04.11.2015, 22:41  [ТС] #5
Ну у меня в классе один из объектов это элемент другого класса. Этот элемент должен быть объявлен как уже существующий(приравнять короче, могу неправильно выразиться).
C++ (Qt)
1
2
3
4
5
6
7
8
9
class ab
{
    package  a;// объект как элемент класса
    ab(package q)// конструктор для класса ab
    {
         a = q;// вот тот a должен быть равен уже существующему, который передается в парамтре
    }
 
};
0
DrOffset
7963 / 4629 / 1125
Регистрация: 30.01.2014
Сообщений: 7,526
04.11.2015, 22:45 #6
NanFe,
Проблема в том, что вызывается конструктор по умолчанию у package a?
Ну тогда надо так:
C++
1
2
3
4
5
6
7
8
class ab
{
    package  a;// объект как элемент класса
    ab(package q)// конструктор для класса ab
        : a(q)
    {
    }
};
1
Nick Alte
Эксперт С++
1647 / 1019 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.11.2015, 22:47 #7
Нужен список инициализации.
C++
1
2
3
4
5
6
7
class ab
{
    package  a;// объект как элемент класса
    ab(package q): a(q)
    {
    } 
};
1
04.11.2015, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2015, 22:47

как узнать,является данный объект класса А1 наследником класса А2
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая ...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект
Привет. Есть такой код class Model { public: Model(); Model(int...

Как объявить статический метод класса?
выдает ошибку на 11 16 19 строку((((((( #include <iostream> using...


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

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

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