以指针或reference为参数的C++函数定义与调用对照表
2014-04-11 00:03
309 查看
初学者不易建立清晰的指针和reference概念,总结这个表以供快速参考:
假设有对象定义:
MyObjectType obj1;
1. 值传递:
如果函数定义为:
void myFunction( MyObjectType obj);
函数调用:
myFunction(obj); //函数以外对象obj的值不会 改变
2. reference传递:
如果函数定义为:
void myFunction( MyObjectType &obj);
函数调用:
myFunction(obj); //函数以外对象obj的值会 改变
3. 指针传递:
如果函数定义为:
void myFunction( MyObjectType *obj);
函数调用:
myFunction(&obj); //需要dereference(&), 函数以外对象obj的值会 改变
假设有对象定义:
MyObjectType obj1;
1. 值传递:
如果函数定义为:
void myFunction( MyObjectType obj);
函数调用:
myFunction(obj); //函数以外对象obj的值不会 改变
2. reference传递:
如果函数定义为:
void myFunction( MyObjectType &obj);
函数调用:
myFunction(obj); //函数以外对象obj的值会 改变
3. 指针传递:
如果函数定义为:
void myFunction( MyObjectType *obj);
函数调用:
myFunction(&obj); //需要dereference(&), 函数以外对象obj的值会 改变
相关文章推荐
- 【C/C++语言基础学习】在主函数的定义的指针数组、二维数组通过三级指针在被调用函数分配内存
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C++成员函数指针定义和调用
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C#调用C++ dll 时,涉及到函数参数类型的转换,这里是C++和C#的类型对照表
- 22、C++用指针作函数参数,定义一个函数,并用函数交换两个整型变量的值
- C++关于函数声明和定义中参数赋值为0调用问题演示
- C/C++学习之C提高----函数调用模型、指针做函数参数、字符串的基本操作、一级指针内存模型建立
- c++ 指针总结 函数参数指针调用和堆栈内存的分配原理
- C#中调用C++的dll的参数为指针类型的导出函数
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- 立此存照(15)[C++]C++调用swap函数交换2个指针的值
- C# 调用Dll中非托管C++代码,函数参数的类型对照
- python嵌入C++------ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
- C++调用空指针对象的成员函数成功的理解
- C++内存分配、函数调用(值传递、指针传递、引用传递)、返回值问题
- c++学习笔记 内存四区 函数调用模型 指针强化
- c++函数参数类型-引用、指针、值
- error C2064: 项不会计算为接受 2 个参数的函数 1> 类不会将“operator()”或用户定义的转换运算符定义到指向函数的指针或指向函数的引用(它们接受适当数量的参数