好的,所以我正在努力解决以下问题:

我有一个类( 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/

10-11 22:47
查看更多