Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NanFe
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 24
#1

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

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

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

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

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

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

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

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

Как объявить friend функцию класса - C++
как это оформить, чтобы работало // ----------> one.h #include "two.h" #ifndef ONE_H_INCLUDED #define ONE_H_INCLUDED #include...

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

Заходя наперёд полагаю, что подход к решению проблемы выбран неверный.
1
Nick Alte
Эксперт С++
1640 / 1012 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.11.2015, 22:13 #3
Почему бы тогда для начала объяснить, зачем необходимо, чтобы объект существовал от момента объявления до момента конструирования? Какой смысл в этом промежутке, во время которого он недоделанный, что с ним будет происходить и с какой целью? Ведь если необходимости в таком "призрачном" существовании нет, то и создавать объект имеет смысл уже тогда, когда есть, из чего его копировать.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
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
Эксперт С++
1640 / 1012 / 119
Регистрация: 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
Привет! Вот еще темы с ответами:

Как объявить статический метод класса? - C++
выдает ошибку на 11 16 19 строку((((((( #include <iostream> using namespace std; class Sop { private: short int kol; ...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout << "I here" << endl; this->setName(); //все...

Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект - C++
Други мои , кодеры. Не могу я ни как передать в функцию объект класса , или что еще лучше(для меня , так как учусь работать с указателями)...

Как объявить указатель на классы наследники одного класса? - C++
Требуется в одном классе(напримпр, NLayer) объявить, а потом и заполнить динамический массив из объектов-наследников (например, LogNeuron,...


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

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

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