c++ - 类中构造函数 ocilib::Resultset 的问题
问题描述
我有课:
#include "ocilib.hpp"
#include <string>
using namespace ocilib;
class Dao
{
public:
Dao(std::string sqlQuery);
private:
ocilib::Resultset rs;
};
以及构造函数的实现:
Dao::Dao(std::string sql_query)
{
Environment::Initialize();
Connection con("tra", "la", "la");
Statement st(con);
st.Execute(sql_query);
rs = st.GetResultset();
}
但是 VS2019 说: 类“ocilib::Resultset”不存在默认构造函数。
我想将结果集对象存储为我的 DAO 类的变量,并在构造函数期间感受它。但看起来这样做不是一个选择。
使用 ocilib 创建 DAO 类的正确架构是什么?
解决方案
在您的程序中的某个其他点,您尝试调用 Doa 的默认构造函数,但是由于您已经实现了自己的构造函数,因此在您的 Doa 类中将没有默认构造函数。
第一个解决方案是实现一个默认构造函数:
Doa()=default;
或者
Doa() {}
如果你必须在{}
.
第二种解决方案是找到您尝试调用默认构造函数的位置。一个地方可能如下所示:
Doa d;
甚至更隐蔽,例如:
std::vector<Doa> d(5);
推荐阅读
- c# - .net C# API GW 触发 AWS Lambda 在发送到 AWS SQS 时返回“连接被拒绝”
- javascript - 从 react-icons 组件中获取 SVG
- scala - 定义路线时使用地图或其他数据类型(段)
- r - 如何将字符列转换为日期?
- spring-boot - 停止应用服务后,有没有办法优雅地停止 Azure 应用服务中的 spring-boot 应用?
- mysql - Mysql 按 id 合并结果
- node.js - Heroku H10 应用程序错误 .. Node.js - 更新服务器端代码后发生错误
- c - C - 从二进制文件中读取位
- ionic-framework - Ionic:在本地主机上运行 APK?
- asp.net-core - 在 ASP .NET Core 上将 IP 地址作为视图数据返回