Loading

c++ 左值右值 函数模板

1.先看一段代码,这就是一种函数模板的用法,但是红色的部分如果把a写成a++或者写成一个常量比如1,都是编译不过的,因为如果是a++的话,实际上首先是取得a的

值0,而0作为一个常量没有地址。写成1也同理,但是写成++a是没有问题的。上面的理解是很粗浅的,深入理解需要涉及左值右值的概念。

template<typename T>
T min(T &x, T &y)
{
    return (x < y) ? x : y;
}

int main()
{
    using namespace std;
    int a = 0;
    int b = 5;
    cout << (min(a, b));

    cin.get();    
    return 0;
}

 

posted @ 2016-05-10 15:22  注销111  阅读(185)  评论(0编辑  收藏  举报