Кресты / Говнокод #11574 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
//Вколите мне каплю никотина, а когда меня разорвет - сожгите ошметки напалмом.
//Только это смоет мой позор.

//Примерно так у меня выглядит вся обработка исключений:
int main(int, char**) //или wWinMain, не важно
{
	try
	{
		//all stuff here
	}
	catch(std::exception e)
	{
		MessageBoxA(NULL, e.what(), "oops", MB_OK | MB_ICONERROR);
	}
	catch(...)
	{
		MessageBoxA(NULL, "Unknown error", "oops", MB_OK | MB_ICONERROR);
	}
	return 0;
}

//А еще у меня есть свой класс строки:
class MyString
{
	wchar_t * data;
	size_t length;
	MyString(wchar_t * _data, size_t _length) : data(_data), length(_length) { }
public:
	//...
	static MyString MyString::fromNumber(int num) 
	{ //Грешен, определяю функции в заголовочном, хотя это и не тот случай.
		wchar_t * data = new wchar_t[16];
		HRESULT hr = StringCchPrintfW(data, 16, L"%d", num);
		if(FAILED(hr))
		{
			throw std::exception("shit happend inside MyString::fromNumber(int)");
		}
		size_t len = 0;
		hr = StringCchLengthW(data, 16, &len);
		if(FAILED(hr))
		{
			throw std::exception("shit happend inside MyString::fromNumber(int)");
		}
		return MyString(data, len);
	}
};

//А вкупе с обработкой исключений чуть выше...
//Чуть не забыл про auto_ptr. Укорочено до сути.
class Base
{
protected:
	std::auto_ptr<SomeType> data; //А где он инициализируется?...
public:
	virtual ~Base() { }
};
class Deriv : public Base
{
public:
	Deriv() : Base() 
	{ 
		data = std::auto_ptr<SomeType>(new SomeType(args)); //...а вот тут он инициализируется!
	}
	virtual ~Deriv() { }
};

//Паттерны!
class Single
{
	Single(); //Без реализации.
	template<typename T> Single(T); //Без реализации.
	template<typename T1, typename T2> T1 operator = (T2); //Без реализации.
	class Ton
	{
		//...
	};
	static Ton object;
	static Ton initObject();
public:
	Ton & instance() { return object; }
};


//Мне стыдно.

Запостил: Xom94ok Xom94ok, (Updated )

Комментарии (14) RSS

  • > std::auto_ptr<SomeType> data; //А где он инициализируется?...
    В дефолтном конструкторе NULL'ом.

    Про Single::Ton что-то недопонял где инициализируется object, и для чего нужен initObject()...
    Ответить
    • Що ви, таки, пrистаёте к человеку? Саrочка, що он, таки, к нему пrистаёт? Не видите, ему уже и так стыдно!
      Ответить
  • >Вколите мне каплю никотина
    Одна капля убивает лошадь, а сколько нужно, чтобы убить хомячка?
    Ответить
  • >Только это смоет мой позор.
    Я не пробовал, но друзья рекомендуют Сэппуку \ Харакири
    Ответить
    • > Я не пробовал
      Попробуйте, потом сможете писать "сам проверял"...
      Ответить
      • Это если неудача постигнет. Но сами по себе ранения живота - самые тяжёлые и обычно приводят к гибели (на правах копетана).
        Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8