Голямата тройка (известна и като Законът за голямата тройка, правилото на тройката; ) е правило в известния език за програмиране от високо ниво 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++