自己看下面的例子,好好感受一下
#include <iostream>
#include <windows.h>
#include <windef.h>
#include <tchar.h>
#include <map>
#include <algorithm>
using namespace std;
int foo1();
int *foo2();
void foo3(int &);
void foo4(const int &);
int main()
{
int a = 5;
int &b = a;//OK
const int &c = a;//ok
int &d = a + 1;//not ok
const int &e = a + 1;//ok
int a1 = foo1();//ok
int &b1 = foo1();//not ok;
const int &c1 = foo1();//ok
int &d1 = foo1() + 1;//not ok;
const int &e1 = foo1() + 1;//ok
int * a2 = foo2();//ok
int * &b2 = foo2();//not ok
int * const &c2 = foo2();//ok
const int *&d2 = foo2();//not ok;
const int * const &e2 = foo2();//ok
foo3(foo1());//not ok
foo4(foo1());//ok
return 0;
}