У меня есть класс с указателем на соединение MySQL. Для этого указателя и соединения имеет смысл быть постоянным. Тем не менее, другие классы необходимо соединение так, один из способов борьбы с этим, чтобы иметь класс бытьДолжен ли я использовать shared_ptr или возвращать unique_ptr.get()?
class A {
std::unique_ptr <sql::Connection> conn;
public:
const sql::Connection* getConnection();
}
Или варианты этого (например, возвращает ссылку или добавление const
в разных местах, в декларации conn
. Реализация из getConnection
, как
const sql::Connection* A::getConnection() {
return conn.get();
}
Я брожу однако, если я должен использовать вместо std::shared_ptr
и возвращает копию указателя. В какой сценарий будет один выбрать любой подход?
И что такое 'A'? Как другие классы имеют доступ к 'A'? – Galik
'A' заботится о том, чтобы проверить, что база данных MySQL существует и может использоваться. Другие классы не имеют прямого доступа к 'A', а скорее нуждаются в соединении, управляемом' A', получая ссылку на 'conn' в качестве параметров в своих методах. –