給定一個類「A」存在並且是正確的。在類「B」中使用對「A」的引用而不是指針的一些負面結果會是什麼。那就是:使用引用而不是指針有什麼缺點?
// In Declaration File
class A;
class B
{
public:
B();
~B();
private:
A& a;
};
// In Definition File
B::B(): a(* new A())
{}
B::~B()
{
delete &a;
}
省略了「B」的進一步正確性,比如拷貝構造函數和賦值操作符額外的代碼,只是想證明問題的概念。
有趣。我以前從未見過這樣的代碼。可能是,這只是一種避免解引用和使用' - >'並且仍然使'a'動態分配的方式,出於某種原因:? +1的問題。 –
這是什麼意思,而不是隻是'一個;'?這不會比兩個引用或指針都更好嗎? – tenfour
@tenfour在許多情況下,但它是一個簡化的例子 - 假設'a'背後的值是由工廠創建的。 – justin