Właściwości W większości języków konstruktor nie może być wirtualny (w efekcie czego nie może być metodą czysto wirtualną), z wyjątkiem języka Object Pascal. Konstruktor nie może być statyczny (wyjątek: język C#). Oznacza to jedynie, że nie umieszcza się przed nim słowa kluczowego static, bo w praktyce konstruktor zachowuje się jak zwykła metoda statyczna, której wywołanie poprzedza zwykle operator new. W klasie, gdzie zadeklarowany jest konstruktor kopiujący, powinien być zadeklarowany dowolny inny konstruktor (domyślny lub inny), ponieważ nie byłoby możliwe stworzenie obiektu danej klasy. Aby stworzyć obiekt korzystając z konstruktora kopiującego, należałoby posiadać inny egzemplarz obiektu danej klasy, który nie może być utworzony, ponieważ jego stworzenie również wymagałoby egzemplarza danej klasy itd. W klasie, gdzie wymagane jest istnienie: konstruktora kopiującego, destruktora lub operatora przypisania, wymagane jest najczęściej istnienie wszystkich trzech. Parametr konstruktora kopiującego nie może być przekazywany przez wartość, ponieważ powodowałoby to nieskończone wywołanie konstruktorów kopiujących. Dla potrzeb wywołania konstruktora należałoby wykonać kopię obiektu.