1. C++ / Говнокод #1634

    +27

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    template<class T>
    class TAbstractObject
    {
    private:
    	T Value;
    public:
    	bool operator==(TAbstractObject& Obj);
    };
    
    ...
    
    template<class T>
    bool TAbstractObject<T>::operator==(TAbstractObject<T>& Obj)
    {
    	...
    	Value++;
    	...
    };

    Код в мешке...

    Говногость, 19 Августа 2009

    Комментарии (7)
  2. C++ / Говнокод #1633

    +32.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    class TString
    {
    public:
    	...
    	char len;
    };
    ...
    int GetWidth(TString& str)
    {
    	if(&str==NULL)
    		return 0;
    	return str.len;
    };

    Мрахахаха(фр)хахаха.

    Говногость, 19 Августа 2009

    Комментарии (7)
  3. C++ / Говнокод #1632

    +28

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    COMMAND command;
    BUFFER Buffer1;
    BUFFER Buffer2;
    ...
    byte NetSend(byte*& data, int& size)
    {
    	byte fErr = NO_ERRORS;
    	char* const Data = (char* const)data;
    
    	if(Data != 0)
    	{
    		if(Data[0] != 0)
    		{
    			Buffer1.writeData(Data,size,NULL);
    			command='Send';
    			byte fErr=net.sendCommand(command,Buffer1);
    		}
    		else 
    		{
    			Buffer2.writeData(Data,size,NULL);
    			command='SendFast';
    			byte fErr=net.sendCommand(command,Buffer2);
    		};
    	}
    	else
    	{
    		byte fErr=SEND_PARAM_ERROR;
    	}
    	
    	return fErr;
    };

    Зачем же автор завёл два Buffer? :D

    Говногость, 19 Августа 2009

    Комментарии (9)
  4. C++ / Говнокод #1631

    +26.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    #define nil 0
    #define ERROR true
    #define OK true
    
    class CRenderer
    {
    	...
    	bool DrawTrinagle(CVector A, CVector B, CVector C, int color)
    	...
    };
    
    ...
    
    bool CRenderer::DrawTrinagle(CVector A, CVector B, CVector C, int color)
    {
    	if(this==nil)
    		return ERROR;
    
    	...
    
    	return OK;
    };

    Голова профессора Доуля...

    Говногость, 19 Августа 2009

    Комментарии (10)
  5. C++ / Говнокод #1622

    +8.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    // файлToolStripMenuItem
    			// 
    			this->файлToolStripMenuItem->Name = L"файлToolStripMenuItem";
    			this->файлToolStripMenuItem->Size = System::Drawing::Size(54, 22);
    			this->файлToolStripMenuItem->Text = L"Файл";
    			this->файлToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::файлToolStripMenuItem_Click);
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(292, 260);
    			this->Controls->Add(this->button1);
    			this->Controls->Add(this->menuStrip1);
    			this->MainMenuStrip = this->menuStrip1;
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->menuStrip1->ResumeLayout(false);
    			this->menuStrip1->PerformLayout();
    			this->ResumeLayout(false);
    			this->PerformLayout();
    
    		}
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    			 }
    	private: System::Void меню1ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    			 }
    private: System::Void файлToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    		 }
    private: System::Void выходToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    		 }
    };

    MS VS 2005 - MS VS 2008 это спокойно компилирует, да ещё и сама код генерирует, когда на формочке рисуешь русское меню.
    Этот компилятор определённо соответсвует стандарту С++.

    Говногость, 18 Августа 2009

    Комментарии (11)
  6. C++ / Говнокод #1620

    +13.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    ...
    
    class TCar
    {
    public:
    	TCar(int Speed)
    	{
    		...
    	};
    };
    
    ...
    
    void destroy_Car(TCar Car)
    {
    	...
    };
    
    ...
    
    void GameLogic()
    {
    	...
    	
    	destroy_Car(50);
    	
    	...
    };
    
    ...

    Хорошая логика...

    Говногость, 18 Августа 2009

    Комментарии (6)
  7. C++ / Говнокод #1618

    +12.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    TMutex CriticalGlobalRTOSMutex;
    
    ...
    
    void CriticalDoing()
    {
    	CriticalGlobalRTOSMutex.Lock();
    
    	...
    
    	if( !HorriblyDoing(...) )
    	{
    		throw FatalException;
    	};
    
    	...
    
    	CriticalGlobalRTOSMutex.UnLock();
    };
    
    ...

    Мне уже страшно...

    Говногость, 18 Августа 2009

    Комментарии (10)
  8. C++ / Говнокод #1617

    +12.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    class TIntArray
    {
    	char buf[10000];
    	int operator[](int Index);
    };
    
    ...
    
    void main()
    {
    	TIntArray a;
    	...
    	memset(&a[1],0.0f,sizeof(TIntArray));
    	...
    };

    Меня этот кот довёл до слёз...

    Говногость, 18 Августа 2009

    Комментарии (11)
  9. C++ / Говнокод #1616

    +13.1

    1. 1
    2. 2
    3. 3
    #define REGISTER_PACKET(cls, type)\
    __declspec(selectany) PacketType cls::s_type = CPacketFactory::RegisterPacket(type, cls::CreateNew); \
    __pragma(comment(linker, "/include:?s_type@##cls##@@2W4PacketType@@C"))

    Очень правильный код... Делать можно только так.

    Говногость, 18 Августа 2009

    Комментарии (11)
  10. C++ / Говнокод #1614

    +7.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    float *val32;
    val32 = new(float);
    *val32 = 0.0f;
    memcpy((float*)(((char*)val32)+0), buf+(i*4)+0, 1);
    memcpy((float*)(((char*)val32)+1), buf+(i*4)-1, 1);
    memcpy((float*)(((char*)val32)+2), buf+(i*4)+2, 1);
    memcpy((float*)(((char*)val32)+3), buf+(i*4)+1, 1);
    
    int value = device->DownValue32(*val32, start + (i*2) - 2);
    
    free (val32);

    Заводить переменные с стеке это для лохов. Реальные пацаны все выделяют в стеке.

    pathfinder, 18 Августа 2009

    Комментарии (6)