在构造函数中将类作为参数传递时,在大多数情况下,我最终会传递指针。主要原因是我必须传递无法实例化的抽象类,并且作为引用不能为空,我真的没有选择......
这是一个例子:
// Abstract class A
class A {
virtual void foo() = 0;
};
class B : public A {
void foo();
};
class C {
public:
C(A* a) : _a(a) {};
private:
A* _a;
};
在某些情况下,我想C
处理指向的A
对象_a
(删除时删除它),在其他情况下,我想C
删除_a
而不删除A
对象。
拥有完善的编程方法的最佳实践是什么?