我试图在两个类之间共享一个方法,其中每个类都使用其私有(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/