c++ - 两个类之间的共享方法

标签 c++ database qt oop

我试图在两个类之间共享一个方法,其中每个类都使用其私有(private)属性,如下所示:

class DbWriter {
public:
    int GetIdFromDB(QString codVEI)        //<! uses mDbWriteQuery
private:
    QSqlQuery mDbWriteQuery;
}


class DbReader {
public:
    int GetIdFromDB(QString codVEI)        //<! uses mDbReadQuery
private:
    QSqlQuery mDbReadQuery;
}

我想做一些类似于友元方法的东西,但每个方法都知道自己的属性成员,并且不必创建一个类并从中继承这两个类,因为它在我的情况下不起作用。

最佳答案

如果您想共享一个实现,只需使用一个通用的免费函数:

namespace detail {
  int GetIdFromDB(QString codVEI, QSqlQuery const& query); 
}

将它包含/链接到两个类并让它们调用它。

将查询作为参数传递可以避免无意义的耦合,因为它不会在组合中引入友元。

关于c++ - 两个类之间的共享方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51020254/

相关文章:

c++ - unordered_map 没有匹配的调用错误

c++ - 附加到 Qt Creator 中正在运行的进程后如何查看控制台输出?

ruby-on-rails - 如何用开发数据填充生产数据库(heroku)? ( rails )

c++ - 缩放时保持 QGraphicsSimpleTextItem 居中

c++ - 如何用 C++/Qt 解析 HTML?

iphone - 移植 iphone 应用程序。如果您要从头开始重新启动您的应用程序,您会采取哪些不同的做法?

c++ - 搜索二进制值

c++ - 无法将 `char (*)[((unsigned int)((int)Tlength))]' 转换为 `char**

c++ - 用于 SOCI 数据库访问库生产的 sqlite3 后端准备好了吗?

MySQL 查询减法值