0
点赞
收藏
分享

微信扫一扫

Java和C++参数传递的区别


C++提供了两种参数传递的方式:值调用和引用调用(函数原型参数类型后有无’&’),值调用后的操作将和被调用的实参完全无关,引用调用相当于直接修改被调用对象

Java总是采用按值调用,要想清楚的是下面两个实例
1、一个Class 类被函数调用时,由于Java总是采用按值调用,所以函数里得到的是该对象的一个clone,且指向实参所指向的对象,所以函数修改该clone对象将对实参引用的对象造成影响,即对实参造成影响,看上去好像Java采用了按引用调用
2、两个Class 类被函数调用,函数功能是实现swap(Class1,Class2),但是该函数无效,由于Java总是采用按值调用,所以函数里得到的是这两个对象的clone,该函数交换的是这两个clone的指向,并没有更改实参的指向,看上去好像Java采用了按值调用

——以上是个人的理解。。


举报

相关推荐

0 条评论