Учитывая заявление, которое вы написали
class AClass {
AClass(TestClass* testClass) { }
};
Вам нужно передать указатель, чтобы вы использовали this
. Однако в C ++ обычно предпочитают использовать ссылки (особенно ссылки const
) вместо указателей, поэтому вы должны объявить AClass
как:
class AClass {
AClass(const TestClass& testClass) { }
};
К которому бы вы перешли *this
.
Теперь есть ситуации, в которых версия указателя является предпочтительной. Например, если testClass
было разрешено быть NULL
(у вас не может быть нулевых ссылок). Или, если testClass
были сохранены в std::vector
или аналогичной структуре данных. (Вы не можете иметь массивы ссылок.)