我有一個指向MySQL連接的指針。只有這個指針和連接是固定的。然而,其他類需要的連接,以便處理這個問題的方法之一是有類是我應該使用shared_ptr還是返回unique_ptr.get()?
class A {
std::unique_ptr <sql::Connection> conn;
public:
const sql::Connection* getConnection();
}
或該變種(如返回的引用或在conn
聲明不同的地方加入const
。實施的getConnection
就像
const sql::Connection* A::getConnection() {
return conn.get();
}
不過,我遊蕩,如果我應該使用,而不是std::shared_ptr
並返回指針的拷貝。在這情況下會選擇一種兩種方法?
那麼什麼是'A'?其他類如何訪問'A'? – Galik
'A'負責檢查所需的MySQL數據庫是否存在並且可用。其他類沒有直接訪問'A',而是需要由'A'管理的連接,通過接收對'conn'的引用作爲其方法中的參數。 –