vissi
|
|
|
|
|
Рег.: 30.09.2007
|
Сообщений: 9275
|
|
Рейтинг: 8222
|
|
Re: c++ классы с полями-указателями
[re: Kai]
08.12.2009 21:32
|
|
|
> Кажется, именно для POD. Да, именно так.
|
|
|
botWi
|
|
|
|
|
Рег.: 22.11.2003
|
Сообщений: 10160
|
Из: Moscow
|
Рейтинг: 1764
|
|
Re: c++ классы с полями-указателями
[re: DarkGray]
09.12.2009 13:00
|
|
|
В ответ на:
new по стандарту гарантирует, что выделенная память и так уже обнулена
ты с++ с сишарпом путаешь?
|
Хватит дрочить на рейтинги |
|
Sevurrrra
|
Хранитель маяка
|
|
|
|
Рег.: 10.09.2007
|
Сообщений: 2050
|
|
Рейтинг: 2759
|
|
Re: c++ классы с полями-указателями
[re: botWi]
09.12.2009 13:19
|
|
|
Это логичная в общем-то мысль - раз для объектов вызывается конструктор по умолчанию, то можно предположить, что POD-типы инициализируются "стандартными" нулями.
|
|
botWi
|
|
|
|
|
Рег.: 22.11.2003
|
Сообщений: 10160
|
Из: Moscow
|
Рейтинг: 1764
|
|
Re: c++ классы с полями-указателями
[re: Sevurrrra]
09.12.2009 15:46
|
|
|
В ответ на:
то можно предположить, что POD-типы инициализируются "стандартными" нулями.
эээ у тебя динамический массив - POD-тип? ты тоже с++ с сишарпом путаешь?
|
Хватит дрочить на рейтинги |
|
Spin
|
он самый
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 14521
|
|
Рейтинг: 4387
|
|
Re: c++ классы с полями-указателями
[re: botWi]
09.12.2009 15:52
|
|
|
да, вот читаю такое и все больше убеждаюсь, что плюсы - просто какой-то набор исключений и нелогичностей по сравнению с другими языками
|
- а этот ваш С++ - он функциональный? - еще какой функциональный! |
|
Sevurrrra
|
Хранитель маяка
|
|
|
|
Рег.: 10.09.2007
|
Сообщений: 2050
|
|
Рейтинг: 2759
|
|
Re: c++ классы с полями-указателями
[re: botWi]
09.12.2009 16:21
|
|
|
Виноват, был дурак, путаю.
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8952
|
|
Re: c++ классы с полями-указателями
[re: botWi]
09.12.2009 16:35
|
|
|
Quote:
ты с++ с сишарпом путаешь?
не путаю. как одно из отличий new от malloc - проговаривалось обнуление памяти (в том числе и у страуструппа).
а вот то, что для массива pod-ов, выделенного динамически, в C++ нет даже синтаксиса для его штатного обнуления - вот это я уже подзабыл.
ps для выделения pod-структуры такой синтаксис, например, есть
|
|
Rad
|
delinquent guy
|
|
|
|
Рег.: 06.09.2005
|
Сообщений: 17291
|
Из: here and there
|
Рейтинг: 2232
|
|
Re: c++ классы с полями-указателями
[re: DarkGray]
09.12.2009 20:36
|
|
|
code: #include <stdio.h>
#include <string>
class A
{
public:
int val;
};
int main()
{
A *a = new A[5];
for(int i=0; i<5; i++) printf("%d,", a[i].val);
printf("\n");
delete [] a;
return 0;
}
cl выдает нули только если в класс добавить виртуальный метод, gcc выдает нули в любом случае (даже если заменить класс на простой int. Кроме того, не редко видел реализацию operator new именно через malloc, а не через calloc.
|
|
|
vissi
|
|
|
|
|
Рег.: 30.09.2007
|
Сообщений: 9275
|
|
Рейтинг: 8222
|
|
Re: c++ классы с полями-указателями
[re: Rad]
09.12.2009 20:49
|
|
|
В ответ на:
cl выдает нули только если в класс добавить виртуальный метод
а если конструктор ?
В ответ на:
operator new именно через malloc, а не через calloc
operator new[] ?
|
|
|
Kai
|
|
|
|
|
Рег.: 25.10.2002
|
Сообщений: 8251
|
|
Рейтинг: 818
|
|
Re: c++ классы с полями-указателями
[re: Rad]
09.12.2009 20:50
|
|
|
Omg, прочитай уже стандарт вместо того что бы проверять undefined behavior на частных случаях!
Quote:
gcc выдает нули в любом случае (даже если заменить класс на простой int.
Добавь цикл вокруг main().
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8952
|
|
Re: c++ классы с полями-указателями
[re: Sevurrrra]
09.12.2009 22:30
|
|
|
Quote:
Это логичная в общем-то мысль - раз для объектов вызывается конструктор по умолчанию, то можно предположить, что POD-типы инициализируются "стандартными" нулями.
с одной стороны - оно так и есть. выделенный вот так int - обязан быть нулевым [c] int * p = new int(); [/c]
но вот выделение массива является исключением - только его не зануляют
|
|
ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27732
|
Из: Воронеж
|
Рейтинг: 11833
|
|
Re: c++ классы с полями-указателями
[re: pianist]
09.12.2009 22:57
|
|
|
Quote:
Аффтар, ты пишешь плохо, очень плохо.
темплаты - не всегда выход. У них есть и преимущества, и недостатки. В некоторых компаниях темплаты вообще политикой запрещены
|
Сеть темна и полна ужасов |
|
Kai
|
|
|
|
|
Рег.: 25.10.2002
|
Сообщений: 8251
|
|
Рейтинг: 818
|
|
Re: c++ классы с полями-указателями
[re: DarkGray]
10.12.2009 00:08
|
|
|
Quote:
но вот выделение массива является исключением - только его не зануляют
Еще поля в классах, для которых явно не указан конструктор.
|
|
Spin
|
он самый
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 14521
|
|
Рейтинг: 4387
|
|
Re: c++ классы с полями-указателями
[re: ayvango]
10.12.2009 00:27
|
|
|
омг, мне жалко их должно быть, их софт писался на старых версиях явы, а потом переписывался на плюсы чтобы быть хоть чуток побыстрее?
|
- а этот ваш С++ - он функциональный? - еще какой функциональный! |
|
Basilio
|
GreenOne
|
|
|
|
Рег.: 14.10.2002
|
Сообщений: 13750
|
Из: Москва
|
Рейтинг: 3476
|
|
Re: c++ классы с полями-указателями
[re: Leron]
12.12.2009 10:58
|
|
|
кстати, тут уже намекали. компилятор один, а рантайм от другого. может, в этом ошибка?
|
|
Rammstein
|
sir
|
|
|
|
Рег.: 08.11.2003
|
Сообщений: 1144
|
Из: рамштайния
|
Рейтинг: 171
|
|
Re: c++ классы с полями-указателями
[re: pianist]
15.12.2009 23:49
|
|
|
Йо, Пеонизд, запости какой-нибудь свой код? А то я все анекдоты уже прочитал.
|
Optics rulez 4ever |
|