从返回值为reference的函数赋值时的auto变量类型

时间:2017-11-01 07:36:58

标签: c++ reference auto

检查以下简单代码:

#include <iostream>

class A
{
    long *context;
public:
    A(long i)
    {
        context = new long;
        *context = i;
    }

    long& getContext()
    {
        return *context;
    }
};

A a(1234);

int main(void)
{
    auto v = a.getContext();
    std::cout << v << std::endl;
    return 0;
}

A::getContext()的返回值是引用,auto变量v的类型是long,而不是long&

....
auto v = a.getContext();
....

如果v的类型被引用,那么缺陷是什么?

0 个答案:

没有答案