0

我创建了一个mongo.h包含的标题

mongocxx::instance inst{};
mongocxx::uri uri{ "link*****" };
mongocxx::client client{ uri };

main.cpp我通过包含它 访问了 mongodb,mongo.h 但是当将此标头包含到其他 cpp 文件时,它返回错误。

文件说实例必须创建一次。我已阅读http://mongocxx.org/api/current/classmongocxx_1_1instance.html 不完全理解,我不熟悉构造函数和析构函数,请任何人帮助从每个 cpp 文件访问 mongodb。

4

1 回答 1

1

这是单例可以提供帮助的一个很好的例子。在mongo.h中,放置一个函数声明:

mongocxx::client& get_client();

单个cpp 文件中,定义函数如下:

mongocxx::instance inst{};
mongocxx::client& get_client() {
  static mongocxx::client client{mongocxx::uri{ "link*****" };};
  return client;
}

通过将它放在一个单独的 .cpp 文件中,您可以确保它是在函数启动inst之前的某个时间创建的。关键字 in确保客户端只被创建一次,即第一次main被调用。staticget_clientget_client

于 2021-11-26T12:02:49.630 回答