在构造函数中将类作为参数传递时,在大多数情况下,我最终会传递指针。主要原因是我必须传递无法实例化的抽象类,并且作为引用不能为空,我真的没有选择......
这是一个例子:
// 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对象。
拥有完善的编程方法的最佳实践是什么?