【发布时间】:2016-02-10 00:17:44
【问题描述】:
是否可以根据传递给该方法的 bool 参数编写一个可以返回引用或复制 (getMember(bool getCopy)) 到类成员的方法?
class Class
{
const std::vector<int>& getMember() { return _member; }
const std::vector<int> getCopyOfMember() { return _member; }
??? getMember(bool getCopy) { ??? }
std::vector<int> _member;
}
我可以使用:
Class cl;
const std::vector<int>& myVector = isCopyNeeded ?
cl.getCopyMember() :
cl.getMember();
for (auto elem : myVector)
...
但是我想要这样的东西:
for (auto elem : cl.getMember(isCopyNeeded))
...
【问题讨论】:
-
不,一个函数只能有一个返回类型。
-
函数的返回类型必须在编译时知道。您要求的是在运行时确定的返回类型。
-
也许我可以使用 std::unique_ptr 来制作通用吸气剂?
-
你可以使用模板,但是你不能在运行时这样做
-
您仍然需要将返回值分配给某个东西,而且也没有办法让它动态化。
标签: c++