Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:57 13.07.25 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Не вярвам [re: BjarneStroustrup®]
Автор Colombino (безработен)
Публикувано25.05.05 15:45  



>> Зъжалявам - вярно така си го пише в стандарта.

Няма какво да съжаляваш, така си е най-добре. Все пак това не е C, а C++.
__________________

>> Объркването иде от там че ВЦ6 не прави така

В момента нямам инсталирана 6-ца и не мога да проверя, но съм убеден, че не е възможно да има толкова кардинална грешка в компилатора (при копиране на структури да не копира почленнно обектите в тях, а да прави memcpy) и да не съм забелязал. VS6 си има кусури, но съм 99.99% сигурен, че това не е един от тях. Нека ако някой с 6-ца не го мързи да те опровергае. А може и сам да го направиш. По-долу прилагам тестов пример за целта.
__________________

>> Осявен това е налълно възможно да имаш 2 (или повече) инстанции на един клас създадени с от компилация на класа при различен алайнмент, например ако се създават в 2 резлични транслационни единици (срр).

А тва за транслационните единици не ми стана хич ясно, вероятно щото и на теб не ти е ясно. Какъвто е алайна в дефиницията на класа, такъв е в обекта. Алайна в 'транслационната единица' касае подравняването на обекта спрямо съседните му обекти, но не и вътре в него. Т.е. не е възможно да имаш два обекта от един и същи клас с различен алайн на вътрешната структура.

Ако все пак могат да бъдат създадени подобни обекти, то би се дължало само на бъг в прекомпилираните хедъри (там има не малко бъгове, но при чист билд не се проявяват).

И последно: да допуснем, че могат да съществуват подобни обекти (от един клас, но с различен алайн на вътрешната структура). Не виждам как наличието/липсата на експлицитно дефиниран копи конструктор може да подоби, или влоши нещата. Да не предполагаш, че при подобно присвояване компилаторът ще се погрижи да коригира отместванията на обектите от един алайн към друг?!? Не виждам как ще стане.

И накрая ето тестовият пример, който се предполага да печати

internal default constructor

internal copy constructor
internal assignment operator


ако всичко е наред и нещо друго ако не е.

#include <iostream>


struct internal
{
internal()
{ // default constructor
std::cout << "internal default constructor" << std::endl;
}

internal( const internal & )
{ // copy constructor
std::cout << "internal copy constructor" << std::endl;
}

internal& operator=( const internal & )
{ // assignment operator
std::cout << "internal assignment operator" << std::endl;
return *this;
}
};

struct container
{
internal _i;
};

void main(void)
{
container c1; // default construction
container c2 = c1; // copy construction
c2 = c1; // assign
}


System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_

Редактирано от Colombino на 25.05.05 15:48.



Цялата тема
ТемаАвторПубликувано
* я пробвайте да компилирате това: zaphod   20.05.05 12:04
. * Я пак, че не разбрах нещо Colombino   20.05.05 13:11
. * Re: Я пак, че не разбрах нещо Pekoнcтpykтop   20.05.05 15:42
. * Не точно Colombino   20.05.05 16:01
. * Re: Не точно Dorian_Gray   20.05.05 16:49
. * Именно, де Colombino   20.05.05 17:00
. * "членове с деструктори"-ебааа!!! focusnik   20.05.05 17:27
. * Re: Я пак, че не разбрах нещо void*   20.05.05 17:15
. * Другари! BjarneStroustrup®   21.05.05 10:07
. * Re: Другари! Colombino   21.05.05 12:26
. * Re: Другари! BjarneStroustrup®   21.05.05 12:48
. * Re: Другари! Colombino   21.05.05 13:15
. * Re: Другари! void*   22.05.05 02:05
. * Тва на мен ли го казваш?!? Colombino   22.05.05 14:39
. * Re: Тва на мен ли го казваш?!? void*   22.05.05 20:07
. * Re: Тва на мен ли го казваш?!? BjarneStroustrup®   25.05.05 12:32
. * Не вярвам Colombino   25.05.05 15:45
. * Re: Не вярвам BjarneStroustrup®   25.05.05 16:35
. * Re: Тва на мен ли го казваш?!? void*   25.05.05 16:24
. * Re: Тва на мен ли го казваш?!? BjarneStroustrup®   25.05.05 16:37
. * Re: Другари! xyz   21.05.05 16:46
. * Re: Другари! Colombino   21.05.05 20:12
. * Re: Другари! zaphod   21.05.05 20:40
. * Re: Другари! Colombino   21.05.05 21:00
. * Re: Другари! xyz   21.05.05 21:39
. * Re: Другари! zaphod   21.05.05 23:30
. * Re: Другари! xyz   22.05.05 01:33
. * Re: Другари! zaphod   22.05.05 09:02
. * Re: Другари! xyz   22.05.05 23:20
. * Бъди джигит! Colombino   22.05.05 23:40
. * Re: Бъди джигит! xyz   23.05.05 13:14
. * бе това на къв компилатор zaphod   23.05.05 14:35
. * Re: бе това на къв компилатор Colombino   23.05.05 14:55
. * оправих го zaphod   23.05.05 15:03
. * я като си зачекал темата zaphod   23.05.05 13:37
. * Баси извратения синтаксис! Colombino   23.05.05 16:20
. * Re: Баси извратения синтаксис! zaphod   23.05.05 17:49
. * Re: я като си зачекал темата void*   23.05.05 20:32
. * Re: я като си зачекал темата zaphod   23.05.05 21:48
. * IDispatch ~!@$%amp;^*()_+   23.05.05 22:54
. * Re: IDispatch zaphod   24.05.05 08:33
. * Re: IDispatch ~!@$%amp;^*()_+   24.05.05 10:02
. * Re: я като си зачекал темата void*   24.05.05 03:27
. * Re: я като си зачекал темата zaphod   24.05.05 08:22
. * Re: я като си зачекал темата void*   24.05.05 14:06
. * тоя метод за викане на конструктор zaphod   23.05.05 14:26
. * Не бачка?!? Colombino   23.05.05 14:33
. * Re: Не бачка?!? zaphod   23.05.05 14:53
. * ами очаквах zaphod   20.05.05 16:18
. * Я пак помисли Colombino   20.05.05 16:48
. * Re: ами очаквах void*   20.05.05 17:19
. * Re: ами очаквах Colombino   20.05.05 17:25
. * Re: ами очаквах void*   20.05.05 18:14
. * Re: ами очаквах Colombino   20.05.05 18:23
. * Re: ами очаквах void*   20.05.05 18:29
. * Ми не знам Colombino   20.05.05 18:37
. * Re: Ми не знам focusnik   20.05.05 18:43
. * Re: Ми не знам void*   20.05.05 19:11
. * Не съм съгласен, мистерията остава Colombino   20.05.05 20:01
. * Re: Не съм съгласен, мистерията остава void*   20.05.05 20:28
. * ето и окончателния отговор void*   22.05.05 03:12
. * Re: ето и окончателния отговор явepтъ   24.05.05 02:31
. * Re: Не съм съгласен, мистерията остава zaphod   20.05.05 22:35
. * Re: Не съм съгласен, мистерията остава void*   21.05.05 00:56
. * ц++ има адски много кусури ~!@$%amp;^*()_+   21.05.05 02:04
. * Re: ц++ има адски много кусури void*   21.05.05 12:01
. * Re: Не съм съгласен, мистерията остава zaphod   21.05.05 07:56
. * Re: Не съм съгласен, мистерията остава BjarneStroustrup®   21.05.05 11:14
. * Подкрепям Colombino   21.05.05 12:32
. * Re: Подкрепям BjarneStroustrup®   21.05.05 12:50
. * Re: я пробвайте да компилирате това: Чвopko   20.05.05 13:38
. * Re: я пробвайте да компилирате това: Пeтpocян   20.05.05 13:40
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.