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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:44 27.09.24 
Компютри и Интернет
   >> Програмисти
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Тема то бива презастраховане, ама...нови  
Автор ~!@$%^amp;*()_+ (целия горен ред)
Публикувано16.12.04 02:56



ето какво открих днес:

if (this == NULL) return 0;



Тема Re: то бива презастраховане, ама... [re: ~!@$%^amp;*()_+]  
Автор RepeatableRead (transactional)
Публикувано16.12.04 08:54







Тема Re: то бива презастраховане, ама...нови [re: ~!@$%^amp;*()_+]  
Авторbahorian (Нерегистриран)
Публикувано16.12.04 10:02



heh, assert(this != 0) ili assert(this) are (az lichno go polzvam, osobeno ako moia kod bi go polzval drug dev), ama takiva bastuni navremeto gi shibahme izotzadze, a sia pokrai demokraciata mnogo se otpusnaha deiba :)



Тема Re: то бива презастраховане, ама...нови [re: bahorian]  
Авторslim shady (Нерегистриран)
Публикувано16.12.04 10:07



muahahhah



Тема Re: то бива презастраховане, ама...нови [re: ~!@$%^amp;*()_+]  
АвторPaдo (Нерегистриран)
Публикувано16.12.04 10:39



Работата е там, че има една малко шибана С практика прясно дефинираните структури да се 'инициализират' с memset, което в повечето случаи се дължи на незнание за съществуването на aggregate initializer синтаксиса.
Нали се сещаш какво става като се приложи тази 'практика' (а навикът е втора природа) върху инстанция на клас? :))



Тема Re: то бива презастраховане, ама...нови [re: bahorian]  
Автор Questor (работник)
Публикувано16.12.04 11:54



Хехе и даже ша ти се накарат що не си сложил assert и са дебъгвали заради тебе

Сигнатура!


Тема Нищо лошо не става....нови [re: Paдo]  
АвторПeнчo (Нерегистриран)
Публикувано16.12.04 12:06



ако се прилага върху обект от клас.- Ако класа (и неговите предшественици) няма виртуални функции.



Тема Re: Нищо лошо не става....нови [re: Пeнчo]  
АвторPaдo (Нерегистриран)
Публикувано16.12.04 12:39



Ъхъ. Ама като подход е 'много добро'. И грешката (няма начин да не се получи, все някога ще се memset-не каквото не трябва) на мен ми изглежда трудно откриваема. Винаги, когато се забърквам с чужд код претърсвам за memset, memmove, ... и искам подробно обяснение защо всъщност се използват. Иначе не се захващам.



Тема Re: то бива презастраховане, ама...нови [re: Paдo]  
Авторstef (Нерегистриран)
Публикувано16.12.04 15:44



Съгласен съм за това, че memset не трябва да се използва за инициализация на обекти, но дали причината за this != 0 е в това?

Според мен по скоро е в откриване на грешки дължащи се на нулеви указатели (примера по-долу). Това е недефинирано поведение според стандарта, но във VC++ например ще се влезе в методите на класа и дори те могат да се изпълнят без проблем (например, ако по-долу се закоментира реда с присвояването на a). С други думи това е една допълнитела идиотоустойчивост (но само срещу идиоти използващи VC++ и компилатори с подобно поведение, с други компилатори няма да помогне). Аз лично не бих я използвал, защото за повечето програмисти би било код-загадка, а и не е преносимо.

Пример:

 

#include <cassert>

class A {
int a;
public:
m()
{
assert(this != 0);
a = 0;
}
};

int main()
{
((A*)0)->m();
return 0;
}





Тема Re: то бива презастраховане, ама...нови [re: stef]  
АвторPaдo (Нерегистриран)
Публикувано16.12.04 16:15



Интересно, не бях се сетил за това :)
Номерът с каст на 0 към нещо съм го виждал само в дефиницията на offsetof.




Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


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

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