形参里带引用操作符的函数,实参应该怎样设置?

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:19:06
int WaitMessage(const CKBehaviorContext& behcontext);

不明白这里的const CKBehaviorContext& behcontext是什么意思

是CKBehaviorContext实例化了一个behcontext么?那const在这里是表示是什么意思呢?

int func1(const int & a);
解释上面的函数func1的定义:
1.第一个int表示此函数的返回值类型
2.func1表示此函数的函数名称
3.const int & a中的const表示传过来的实际参数a,不能被函数内部修改.
4.const int & a中的int 表示传过来的实际参数是int类型的数据
5.const int & a中的&表示传过来的实际参数是以引用方式传递

你的int WaitMessage(const CKBehaviorContext& behcontext); 中的CKBehaviorContext当然就是数据类型,behcontext当然为参数名称;

举例说明;
int func1(const int & a)
{
a = 3;//此句是错误的,因为有const修饰的变量,在这里不能被修改.编译时会报错
return a;
}

如果不加const的话,就可以修改了.

int func1(int & a)
{
a = 3;
return a;
}

我们假设现在定义一个变量b
int b=5;
然后调用func1
func1(b);
这个时候b的值为3;因为b的值被修改了.

引用传值跟传指针,很相近.只是引用传值,使用起来更直观.没有使用指针那么麻烦.

没有实例化,传进来的是地址,使用的是调用函数时传入变量本身。。
加上const表示在函数里,这个参数作为一个常量使用,也就是在函数里不能为其赋值。。

CKBehaviorContext 是代表参数类型
behcontext 方法中参数的引用
& 符号类似于指针,引用参数地址

const 是代表不可改变,因为是传的地址进去,如果你把另一个对象赋予他,原来的对象就丢失了