(新手使用现有代码库学习 C++) 考虑以下代码片段:
class Filter
{
...
public:
Filter();
int addFilter(gFilter &filterDesc);
…
};
class gFilter
{
public:
….
inline const RangeOfUInt& getProto() const
{
return proto;
}
private:
…
RangeOfUInt proto;
…
};
typedef struct
{
ValueType type;
uint32_t value1;
uint32_t value2;
} UIntRange;
typedef std::list<UIntRange> RangeOfUInt;
…
const RangeOfUInt protos = filterDesc.getProto(); // XXX
所以在这个例子中,getProto() 返回 const 引用并为“protos”创建一个拷贝?
最佳答案
是的,你说得完全正确。 protos
是从 getProto
返回的引用生成的拷贝。 (调用者创建拷贝,getProto
则不会。)
关于c++ - const 引用并创建拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649634/