关于C++中形参的问题

我刚开始学习C++。我不明白的是。swap()函数一个标准库中原有的函数,为什么好多书中都搞自定义呢,就是自己在重新定义一次?
还有,我不懂的是自定义函数声明的时候,我常遇到
--某函数名(int *,int *)
或者
--某函数名(int &,int &)
这一类的写法,请大侠们帮我解答一下吧!

学习C++的时候这个函数放在了命名空间里面,所以如果你重新定义一次,一般可以重载的,只要形参个数和类型一样,
你不懂得地方就是形参里提到的类型而已 其实它就像我们定义一般数据类型一样
例如 int a; 这个是整型数据类型 例如上述的 int * 就是整型指针 下面一个就是整型引用
这是函数的一般格式,你可以有形参,可以没有, 它的作用,简单来说就是作为一个标识符一样来用,函数形参告诉你这个接口究竟是用什么样类型的参数,实参传来就与形参相匹配,如果类型不对,可能报错,也可能强制转换。

总的来说,这样的写法是函数的一个接口而已, 提示你函数接受什么参数,干什么事情。追问

太谢谢你了,这么快就回答我。
我在书上还没有找到对应的说法,但明白你的意思了,可能刚开始学习C++,习惯性地要在*或&加个变量名字,不然老感觉别扭。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-22
自定义就是为了举例子而已,否则还得讲到模板。比如swap(int, int)形参写成这个肯定不能达成目的,这个是传值而非传地址,操作数不是我们想要的。追问

谢谢你!
那样举例子是这个道理。
viod swap(int, int)这样声明不可以吗?

“操作数不是我们想要的”什么意思啊?

追答

你上网找“传值参数和引用调用参数”就知道了,这是两种不同调用方式。比如swap(int x, int y),传入变量a和b,它只是将ab的值复制给了形参xy,所以你函数中操作形参xy,不管怎样变都不会影响ab的值。但是对于引用或者指针,实际操作的则是传入的变量ab,这是引用和指针特性决定的。

追问

嗯嗯,我刚刚看过这个,太谢谢了!!!!

相似回答
大家正在搜