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; }