Pokaż kod. Bez kodu twój opis jest zdecydowanie zbyt ogólny. Ale odpowiadając na szybko: tak, to może być rozwiązanie. Cokolwiek by to nie było i tak powinieneś dopisać właściwe konstruktory/operatory. Jeśli twoje obiekty są gdzieś w kodzie kopiowane, to możesz być pewien, że z tego wynikają problemy.
W internecie znalazłem coś co internauci nazwali "the role of three". (...) I czy są jakieś inne reguły programowania w C++, które powinienem zgłębić?
Rule* of three. Od c++11 "rule of three" jest rozszerzona do "rule of five" - dochodzi przenoszący konstruktor i przenoszący operator przypisania.
PS: destruktor, nie de-konstruktor :)