вероятно, не самое лучшее, что можно сделать
Возможно, это не плохая идея.Однако каждый раз, когда вы используете указатели в C ++, вы должны быть полностью ясно о том, как они будут использоваться: на что указывает указатель (а не только на тип указателя), но скаляр против массива и т. д.) как указанная вещь попадает туда (например, через new
? Как часть какого-то другого объекта? Что-то еще?), и как все это будет очищено.
Как добиться того же результата в c ++?
Почти идентично, за исключением того, что C ++ не использует new
при создании локального экземпляра по значению (поэтому мывместо этого напишите SomeClass c = SomeClass(this);
, или, проще, SomeClass c(this);
), и мы должны знать о типах указатель и значение (поэтому SomeClass :: someOtherClass теперь является SomeOtherClass *
, который также является типом, который мы принимаем в конструкторе),Вам также следует рассмотреть возможность использования списков инициализации для инициализации элементов данных, поэтому SomeClass::SomeClass(SomeOtherClass* someOtherClass): someOtherClass(someOtherClass) {}
.