C++中引用作为形参作用

闪耀 发布于 2013/12/09 10:53
阅读 792
收藏 1
c++
#include "iostream"
using namespace std;
class complex{
public:
complex(doblue i,double j){
rage1=i;
rage2=j;


}
complex add(complex &c);
complex sub(complex &c);


}
complex complex::add(complex &c)
{
return complex(rage1+c.rage1,rage2+c.rage2)
}
complex complex::sub(complex &c)
{
return complex(rage1-c.rage1,rage2-c.rage2)
}
void complex::display(void)
{


}
int main()
{
comlex c1(1.5,2.5),c2(2,3);
cout>>"c1= ";
cout>>add(complex &c); 
cout>>"c2= ";
cout>>sub(complex &c); 
return 0;

}

代码不全......代码中黄色字体中形参C引用是什么含义啊?

加载中
0
铂金小白
你可以把它当做为传地址。。。
闪耀
闪耀
我知道是传地址,可是我看书上说的是引用作为类的对象,也就相当于是把C作为类的对象处理,然后作为函数的形参处理,可以我没有看到它声明为类的对象啊,complex 类的对象是C1,C2啊,没有定义的对象C怎就可以拿来用了呢?
0
公孙二狗
公孙二狗

我的习惯,如果需要修改一个参数,则用指针,如果参数不被修改,则用常量引用

void foo(const ClassName &obj); // obj在函数中不会被修改。

void bar(ClassName *obj); // obj在函数中将要被修改。

0
newzai
newzai

java比较适合你,无需为这些问题二烦恼。

这个是C++的基础知识了,如果搞不懂,还真的是别来进入,否则,以后头大的地方还多着呢。

引用和指针,内在基本上是一样的,无非就是外表不一样,一个是 . 一个是 ->

一个不能为null,一个可以为null。。。。。目的都是为了少一个临时对象。

闪耀
闪耀
答非所问.....
0
Jerikc
Jerikc
你编译OK?我怎么感觉是语法错误。
Jerikc
Jerikc
回复 @闪耀 : 形参引用C的含义就是,在调用函数的时候,按引用的方式传值,这样在执行函数块部分,不会在调用栈上建立副本,而是直接使用实参。
闪耀
闪耀
是一个运算符重载示例,代码没有记住....
闪耀
闪耀
大哥...我已经声明说过了代码不全....
0
张亦俊
张亦俊

话说看了你的第一条回复就不懂你想问什么了。

如果是说没有声明c的话,你的函数里不是有complex &c这样声明了c是传入complex对象的引用么?

如果是啥叫引用的话,int s=0;int& a=s;,这样a就是s的引用。引用就是除了名字一模一样的意思。s=10;的话a的值也是10。这是逻辑上对引用的定义。至于地址云云的是物理手段,不扯也不要紧。

0
张亦俊
张亦俊

引用来自“张亦俊”的答案

话说看了你的第一条回复就不懂你想问什么了。

如果是说没有声明c的话,你的函数里不是有complex &c这样声明了c是传入complex对象的引用么?

如果是啥叫引用的话,int s=0;int& a=s;,这样a就是s的引用。引用就是除了名字一模一样的意思。s=10;的话a的值也是10。这是逻辑上对引用的定义。至于地址云云的是物理手段,不扯也不要紧。

说地址仅仅是物理手段,可参见以下code:

int s=0; int& a=s;

a=s+1;

cout<<a;



这段code中,编译器完全可以将所有a直接替换为s并删除int& a=s;这样编译。

不过貌似一般而言,编译器还是会保留a和s两者。

闪耀
闪耀
我知道了,C是complex类的对象c1 ,c2的引用,complex &c作为add()函数和sub()的形参....
返回顶部
顶部