Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
Заблокирован

Есть ли разница между MyClass *c = new MyClass() и MyClass *c = new MyClasss;

26.04.2013, 08:29. Показов 5001. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, что происходит, когда создаёшь объект класса без скобок в название после new?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2013, 08:29
Ответы с готовыми решениями:

Vector<MyClass> MyVector или вектор типа MyClass - C++
Допустим у меня есть код ежедневника с классом Time, тут есть проверка времени, добавление элементов вектора в конец строки и небольшая...

Отличие Myclass& от Myclass* в аргументах функции
Доброго времени суток. Новичок в С++ (раньше писал на всяких питонах и пхп). Очень нравится язык, прям каждый раз, когда что-то новое...

Перебрать List<MyClass> со вложенными списками List<MyClass> в каждом элементе
Есть древовидная структура вида: List&lt;MyClass&gt; myClassList; //... public class MyClass{ public List&lt;MyClass&gt;...

27
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.04.2013, 11:28
Студворк — интернет-сервис помощи студентам
FarStar, Все равно, есть user-defined конструктор, потому всегда будет вызван он. А вот какова будет инициализация в конструкторе - дело того кто его пишет.
0
Заблокирован
26.04.2013, 11:37  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
FarStar, Все равно, есть user-defined конструктор, потому всегда будет вызван он. А вот какова будет инициализация в конструкторе - дело того кто его пишет.
Ну вот в моём примере конструкторе ничего не инициализировалось, значит всё мусор?
А если нет юзер конструктора, тогда что?
я просто пытаюсь понять, в чём разница между new A() и new A ? видел такой вопрос в одном тесте brainbrench
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
26.04.2013, 11:41
Цитата Сообщение от Tulosba Посмотреть сообщение
быдлером
назовите на чем вы сейчас пишите, я тоже хочу назвать эту среду гамном имеющей недостатки
Цитата Сообщение от Tulosba Посмотреть сообщение
Что за STD?
ну типа std::и_все_что_тут_пишется
Цитата Сообщение от Tulosba Посмотреть сообщение
Но когда проект содержит несколько сотен тысяч строк
когда проект содержит сотни тысяч строк говонокода вдруг оказывается виноватой среда разработки... не, пример хороший, просто реально за практику работы не сталкивался с таким. делал и так и сяк (то есть пользуясь классами VCL или пользуясь std::string что мне ближе). ни разу не "попал". может "гребешок" был редкий или "чесал" в другую сторону.

Добавлено через 1 минуту
Цитата Сообщение от FarStar Посмотреть сообщение
если нет юзер конструктора, тогда что?
тогда среда сама сгенерит его. для простых полей инициализации не будет. для объектов будут вызываться констркторы по умолчанию
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.04.2013, 11:43
Я пожалуй, слегка был не прав, приведя цитаты из стандарта С++11. Тут слегка изменились правила. Вот из 03.
A new-expression that creates an object of type T initializes that object as follows:
— If the new-initializer is omitted:
— If T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-
initialized (8.5). If T is a const-qualified type, the underlying class type shall have a user-declared
default constructor.
— Otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly
cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of
const-qualified type, the program is ill-formed;
— If the new-initializer is of the form (), the item is value-initialized (8.5);
— If the new-initializer is of the form (expression-list) and T is a class type, the appropriate constructor is
called, using expression-list as the arguments (8.5);
— If the new-initializer is of the form (expression-list) and T is an arithmetic, enumeration, pointer, or
pointer-to-member type and expression-list comprises exactly one expression, then the object is initial-
ized to the (possibly converted) value of the expression (8.5);
— Otherwise the new-expression is ill-formed.

To zero-initialize an object of type T means:
— if T is a scalar type (3.9), the object is set to the value of 0 (zero) converted to T;
— if T is a non-union class type, each nonstatic data member and each base-class subobject is zero-
initialized;
— if T is a union type, the object’s first named data member89) is zero-initialized;
— if T is an array type, each element is zero-initialized;
— if T is a reference type, no initialization is performed.
To default-initialize an object of type T means:
— if T is a non-POD class type (clause 9), the default constructor for T is called (and the initialization is
ill-formed if T has no accessible default constructor);
— if T is an array type, each element is default-initialized;
— otherwise, the object is zero-initialized.
To value-initialize an object of type T means:
— if T is a class type (clause 9) with a user-declared constructor (12.1), then the default constructor for T is
called (and the initialization is ill-formed if T has no accessible default constructor);
— if T is a non-union class type without a user-declared constructor, then every non-static data member
and base-class component of T is value-initialized;
— if T is an array type, then each element is value-initialized;
— otherwise, the object is zero-initialized

Scalar types, POD-struct types,
POD-union types (clause 9), arrays of such types and cv-qualified versions of these types (3.9.3) are collec-
tively called POD types.

A POD-struct is an aggregate class that has no non-static data members of type non-POD-struct,
non-POD-union (or array of such types) or reference, and has no user-defined copy assignment operator
and no user-defined destructor.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 11:46
Цитата Сообщение от vxg Посмотреть сообщение
назовите на чем вы сейчас пишите, я тоже хочу назвать эту среду гамном имеющей недостатки
Всё говно, кроме мочи. У всех есть недостатки, только кто-то их исправляет, кто-то нет, у кого-то больше, у кого-то меньше. Ну и т.д, и т.п. На текущий момент можете похаить VS2010
Цитата Сообщение от vxg Посмотреть сообщение
ну типа std::и_все_что_тут_пишется
Если Вам не сложно, создайте тему, пообсуждаем. Потому что тут это уже дикий оффтоп и холивар.
Про глюки BC6 тоже можно создать тему, но для себя я уже решил никогда к этой среде не возвращаться, поэтому переубедить меня уже нельзя
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
26.04.2013, 11:49
Цитата Сообщение от ForEveR Посмотреть сообщение
Я пожалуй, слегка был не прав, приведя цитаты из стандарта С++11. Тут слегка изменились правила. Вот из 03.
кстати, а как будет вести себя массив?
C++
1
my_type *a = new my_type[10];
есть ли тут способ управлять конструкторами создаваемых объектов и что будет происходить если конструктор без параметров был запрещен в определении типа?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 11:56
Цитата Сообщение от vxg Посмотреть сообщение
и что будет происходить если конструктор без параметров был запрещен в определении типа?
То массив создать не получится. При создании массива вызывается конструктор по умолчанию.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
26.04.2013, 12:01
Цитата Сообщение от Tulosba Посмотреть сообщение
похаить VS2010
среда исторически неполноценная нагло претендующая на извращение самого лучшего на свете языка путем приписывания к нему различного рода уродских расширений (в том числе, управляемых), деградирует все сильнее с каждой новой версией, предпринимает попытки залезть в душу при помощи выпуска свободных версий и наклеивания страз, судорожно попытается быть похожей на Borland C++ Builder 6 не смотря на органическую несовместимость своего графического дизайнера со здравым смыслом (к слову сказать XE так же пытается быть похожим на VS - зачем - это вопрос), интерфейс крайне враждебен и неудобен, настройки настолько сложны (некоторые этим хвалятся наивно полагая что теперь они могут настроить каждую строчку в своей программе), что легче пересесть на Linux (причем предварительно написав ядро, компилятор и выполнив сборку на собственноручно изготовленном чипе) имеющая свои недостатки

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
То массив создать не получится. При создании массива вызывается конструктор по умолчанию.
логично. думал может чего не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2013, 12:01

Char *a = myclass
Здраствуйте! Помогите пж: учу С++ давно и столкнулся с такой проблемой: надо преобразовать класс так, чтобы при прямом обращении...

DataGridViev = BindingList<MyClass>
Доброго дня всем! dataGridViev = BindingList&lt;MyClass&gt; появляются пустые строки! какой метод должен быть реализован в MyClass что бы...

Import com.test.MyClass.*
Добрый день! Объясните пожалуйста что дает импорт когда мы пишем ClassName.*, например import java.util.Arrays.*; такой вид импорта не...

Сортировка BindingList<MyClass>
Как отсортировать этот список без переписываний туда-сюда по 10 раз? IEnumerable&lt;D1&gt; Query; BindingList&lt;D1&gt; Tmp = new...

Поиск в List<MyClass>
Здравствуйте у меня такой вопрос я создал класс с тремя полями данных разного типа class MyClass { private string...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru