好的,所以我正在努力解决以下问题:
我有一个类( A
),它包含一些其他类( vector<B>
)的 B
(Qt vector )。类 B
有一个属性,比如说 p
并且还有一个名字。
在一种情况下,我想获得将在类 B
中找到的 A
对象的列表,这些对象设置了 p
属性,而对于另一种情况,我想获得具有 B
属性的 ojit_code 对象的名称列表属性集。
最重要的是,我希望这两个函数被称为相同的 :)
所以,像这样:
class A
{
public:
QVector<B*> B_s_with_p() { ... }
QStringList B_s_with_p() { ... }
};
但我不想有一个辅助参数来重载方法(是的,这很容易),我得到的最接近的是一个具有不同名称的方法......它有效,但它很难看。模板似乎也不起作用。
有没有办法使用今天的 C++ 来实现它?
最佳答案
作弊是使用对 QVector<B*>
或 QStringList
的引用作为参数而不是返回类型。这样你就可以像往常一样重载 B_s_with_p
。我想你不认为这是一个有效的选择。
关于c++ - 从 C++ 函数返回不同的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16815500/