Конструкторы и деструкторы тесно связаны с динамической памятью.
Вы должны использовать конструкторы для распределения памяти, а
деструкторы для возвращения занятой памяти. Например:
class string {
char *data; // Указатель на строку данных
int size; // Размер строки
public:
// Распределение памяти (см. "Динамическое использование
// свободной памяти")
string(int sz) { data = new char[size = sz]; }
// Возвращение занятой памяти
~string(void) { delete data; }
};