这次先上代码
main.cpp
#include <iostream>
using namespace std;
int add_one(int a)
{
a = a+1;
return a;
}
int add_one(int* a)
{
*a = *a+1;
return *a;
}
int add_one_yy(int & b)
{
b = b+1;
return b;
}
int main(int argc, char **argv)
{
int a = 99;
int& b = a;
cout << add_one(a) << "|" ; //这里输出的a的值还是99
cout << "a = "<< a << endl;
cout << add_one(&a) << "|"; //这里用指针,可以改变a的值为100
cout << "a = "<< a << endl;
cout << add_one_yy(a) << "|"; //这里用引用,定义一个a的引用b,可以改变a的值
cout << "a = "<< a << endl;
b++;//这里用引用,加1
cout << "a = " << a << endl;
}
1 重载
这里定义了两个同方法名的方法,分别是int add_one(int a)和int add_one(int* a);
这里可以共存,在调用时,因为参数的类型不同,所以使用的时候回重载对应的函数。
2 指针
int add_one(int* a)这个方法使用了指针操作,指针即变量的地址(ram地址);
所以可以修改变量值,这里和c语音的使用时一样的;
3 引用
由于指针操作杀伤力太大,语音开发者想减少使用者使用指针,所以在c++扩展引用;
代码中int& b = a;和int add_one_yy(int & b)都是引用的使用例子。
*int &b = a;意思为b是a的引用,可以理解为b是a的别名(视频老师原话)。
原理为b和a指向的是同一块内存地址。
结束
网友评论