Голямата тройка (известна и като Законът за голямата тройка, правилото на тройката; ) е правило в известния език за програмиране от високо ниво C++, което гласи, че при дефинирането на клас класът трябва да съдържа следните специални член-функции (методи):

Деструктор Конструктор за копиране Предефиниране на оператора за присвояване

Тези три специални член-функции на класа се дефинират по подразбиране от компилатора, ако не са дефинирани от програмиста.

Когато в декларацията на клас има член-данни от тип указател, т.е. в програмата ще се използва динамично заделена памет, тогава Голямата тройка е задължителна. Много програмисти вместо понятието Голяма тройка използват Голяма четворка. Голямата четворка се състои от методите на Голямата тройка заедно с конструктор по подразбиране, т.е. конструктор без параметри.

Примерен вид на голямата тройка (четворка) #include <iostream> #include <string.h> using namespace std;

class Example { char* ex;

public: //... Example (); // Конструктор по подразбиране Example (const Example& other); // Декларация на конструктора за копиране Example& operator =(const Example& t); // Предефиниране на = ~Example (); // Деструктор //...

Example::Example() // Дефиниция на конструктора по подразбиране { ex = NULL; }

Example::Example(const Example& other) // Дефиниция на копиращия конструктор { ex = new char [strlen(other.ex) + 1]; strcpy (ex, other.ex); }

Example& Example::operator =(const Example& t) // Предефиниране на = { if (this != &t)

delete [] ex; ex = new char [strlen(t.ex) + 1]; strcpy (ex, t.ex);

return *this; }

Example::~Example() // Дефиниция на деструктора { delete [] ex; } //...

Категория:C++