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

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

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

инициализация объекта - C++

21.01.2014, 18:55. Просмотров 382. Ответов 11
Метки нет (Все метки)

Как проинициализировать объект созданный с помощью new?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 18:55     инициализация объекта
Посмотрите здесь:

Инициализация объекта (конструкторы) - C++
С помощью чего инициализируется этот объект f2? #include <iostream> //============================================== class...

Инициализация данных объекта. - C++
Помогите найти ошибку. class Peson{ private: int Number; char FIO; int Pol; float Age; public: void print(); ...

Инициализация объекта строго константой - C++
Пишу class Class { private: const int *Int; public: Class(const int *b) { Int=b; } int get() { return *Int; } ...

Указатель и инициализация объекта класса - C++
Здраствуйте! Имеется большой класс импортирующий данные из файлов 3D-модели. В моём приложении он будет инициализироваться один раз для...

Инициализация объекта нулями или мусором - C++
Здравствуйте. Я бы воспользовался поиском, но даже не знаю, как ему сформулировать вопрос. Допустим, есть какой-то класс с...

Инициализация объекта из массива объктов класса - C++
Ребята подскажите, как создать массив объектов класса с инициализацией каждого? CLASS1* class1; //нужно к примеру 5 объектов class1...

Инициализация константного статического объекта - члена класса - C++
Здравствуйте, у меня возникла проблема с инициализацией статического объекта, который является членом класса. Этот объект должен быть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.01.2014, 19:08     инициализация объекта #2
Leonchik_, так он по-любому инициализируется (т.е. конструктор по-любому вызывается) после присвоения указателю выделенного места в памяти с помощью new.
ValeryS
Модератор
6549 / 5015 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
21.01.2014, 19:11     инициализация объекта #3
Цитата Сообщение от Leonchik_ Посмотреть сообщение
Как проинициализировать объект созданный с помощью new?
ну например так
C++
1
2
MyClass * mcl=new MyClass(5);
int * d=new int(10);
Цитата Сообщение от BumerangSP Посмотреть сообщение
так он по-любому инициализируется (т.е. конструктор по-любому вызывается) после присвоения указателю выделенного места в памяти с помощью new.
кроме тех случаев когда в классе нет конструктора без параметров, или с параметрами по умолчанию
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.01.2014, 19:16     инициализация объекта #4
Цитата Сообщение от ValeryS Посмотреть сообщение
кроме тех случаев когда в классе нет конструктора без параметров, или с параметрами по умолчанию
Тогда компилятор сам создает конструктор и он все равно вызывается) Если конечно никаких других в классе не определено. Иначе компайл еррор.
ValeryS
Модератор
6549 / 5015 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
21.01.2014, 19:22     инициализация объекта #5
Цитата Сообщение от BumerangSP Посмотреть сообщение
Тогда компилятор сам создает конструктор и он все равно вызывается)
нет
Цитата Сообщение от BumerangSP Посмотреть сообщение
Если конечно никаких других в классе не определено.
вот именно
создал класс а в нем единственный конструктор с аргументом(и)
и что же тогда динамически не создавать объект?
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.01.2014, 19:36     инициализация объекта #6
Не пойму, к чему Вы клоните. Более чем написано ниже, я не хотел сказать.
Миниатюры
инициализация объекта  
ValeryS
Модератор
6549 / 5015 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
21.01.2014, 20:10     инициализация объекта #7
я клоню к тому что если программист не описал конструктор то компилятор создаст конструктор по умолчанию(чаще всего это пустая функция)
а если описал хоть один конструктор, то конструктор по умолчанию не создается
пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
class MyClass
{
 int a;
public:
 MyClass(int b) { a=b;};
}
.......................
MyClass A;// ошибка нет конструктора без параметров, а по умолчанию не создается
MyClass B(5);// все в порядке
MyClass* C= new MyClass; // ошибка
MyClass* D= new MyClass(7); // все в порядке
...................................
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.01.2014, 20:20     инициализация объекта #8
ValeryS, да, именно это и описано мной в 4 посте. Да и стоило ли все это лишних обсуждений, потому как если конструктор не вызовется, то дальнейшей работы с объектом все равно не будет?
mishelle92
61 / 60 / 20
Регистрация: 09.10.2012
Сообщений: 190
Завершенные тесты: 1
21.01.2014, 20:21     инициализация объекта #9
Еще конструктор по умолчанию можно занести в private и нельзя будет создавать объекты этим конструктором.
ValeryS
Модератор
6549 / 5015 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
21.01.2014, 20:29     инициализация объекта #10
Цитата Сообщение от mishelle92 Посмотреть сообщение
Еще конструктор по умолчанию можно занести в private
и как ты его занесешь?
конструктор по умолчанию создается компилятором
или ты имеешь ввиду конструктор без параметров?
а главное зачем такой изврат? не описывай его да и все
хотя я видел такое применение
в классе переопределен new а конструкторы все приватные
в результате объект можно сказать только динамически
Цитата Сообщение от BumerangSP Посмотреть сообщение
ValeryS, да, именно это и описано мной в 4 посте.
ну а я добавил если конструктора нет то он и не вызовется
Цитата Сообщение от BumerangSP Посмотреть сообщение
то дальнейшей работы с объектом все равно не будет?
разумеется нет но или компилятор ошибку прочухает или при выполнении исключение словим
но как я понял у ТС именно класс с конструктором с параметром
и он не знает как его правильно создать при динамике
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.01.2014, 20:36     инициализация объекта #11

Не по теме:

ValeryS, там где мое предложение с вопросом, знак вопроса относился к

Цитата Сообщение от BumerangSP Посмотреть сообщение
стоило ли все это лишних обсуждений
Т.е. не к вопросу о возможной работе)



Цитата Сообщение от ValeryS Посмотреть сообщение
но как я понял у ТС именно класс с конструктором с параметром
Да, возможно. Просто ТС как обычно никак не научатся четко формулировать свой вопрос
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2014, 20:44     инициализация объекта
Еще ссылки по теме:

Для агрегатного объекта требуется инициализация с использованием "{.}" - C++
Помогите.. как засунуть \\" + string(z) + "\\ правельно unsigned long Size = 256; char *z = new char; ...

"Повторная" инициализация объекта - C++
class A { int x, y; public A() { x = y = 100; } public A(int xx, int yy) { x = xx; y = yy;} }; A a1 = A(); a1 =...

Инициализация - C++
1. Создать класс Solid 2. Его наследует Planet 3. В функции Gravitation используются объекты Solid Это все .h и .cpp библиотеки 4....

Инициализация в private - C++
Объясните пожалуйста в чем собственно заключается ошибка и как ее исправить. Зарание спасибо class Menu{ private: ...

Инициализация игры... - C++
Помогите пожалуйста... Переискал по всем известным мне форумам но так и не нашел... Как проверить через С++ сколько игроков на...


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

Или воспользуйтесь поиском по форуму:
mishelle92
61 / 60 / 20
Регистрация: 09.10.2012
Сообщений: 190
Завершенные тесты: 1
21.01.2014, 20:44     инициализация объекта #12
Цитата Сообщение от ValeryS Посмотреть сообщение
и как ты его занесешь?
конструктор по умолчанию создается компилятором
или ты имеешь ввиду конструктор без параметров?
а главное зачем такой изврат? не описывай его да и все
хотя я видел такое применение
в классе переопределен new а конструкторы все приватные
в результате объект можно сказать только динамически
Да, я имел в виду конструктор без параметров. А так - да, я про это говорил.
Yandex
Объявления
21.01.2014, 20:44     инициализация объекта
Ответ Создать тему
Опции темы

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