我有一个指向MySQL连接的类指针,让这个指针和连接常量化是很有意义的。然而,其他类需要这个连接,因此应对这种情况的一种方式是让该类成为
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
? - GalikA
负责检查所需的 MySQL 数据库是否存在并可用。其他类没有直接访问A
,而是需要由A
管理连接,通过在其方法中接收对conn
的引用作为参数来实现。 - Reimundo Heluani