+ -
当前位置:首页 → 问答吧 → 类的对象是引用吗?

类的对象是引用吗?

时间:2011-12-19

来源:互联网

对象的调用开销大吗?用什么方式调用类的函数好些?
除了指针调用外,还有其它调用方式吗?
有必要用指针调用类的函数吗?
下面的对象调用是引用吗?
C/C++ code

class CPlayerState{ ... } 
CPlayerState playerState;//类的对象
playerState.function();//这样调用类的函数,是引用吗?

作者: zhouxicai   发布时间: 2011-12-19

应该 不是。。

作者: wwwzys   发布时间: 2011-12-19

调用函数哪有那么多规矩啊。。。开销都一样,你看反汇编代码的话,都是在函数调用处有个跳点,然后跳转到目标函数代码处。

作者: LinuxTiger   发布时间: 2011-12-19

基本概念理解有误...

C/C++ code
CPlayerState obj;
CPlayerState *pPlayer = &obj;


//若无virtual 函数,两种开销差不多 。甚至用.更高(编译期代码就确定了)
C/C++ code
obj.function();
pPlayer->function();


你说的效率主要体现在参数传值或传引用上。例如:
C/C++ code
void fun2(CPlayerState state){}
void fun2(CPlayerState& state){}


第二种方法更好,因为避免了
CPlayerState 的拷贝构造的过程。

作者: naiveC   发布时间: 2011-12-19

我的程序中都是这样的方式调用函数,不知道开销大否?是用指针调用速度快些,但是需要释放,很麻烦。
class CPlayerState{ ... } 
CPlayerState playerState;//类的对象
playerState.function();//这样调用类的函数,是引用吗?

书上说这样是引用,与上面的例子有区别吗?
int a;
int & b = a;
b=3;//即 a==3

作者: zhouxicai   发布时间: 2011-12-19

1 建立对象开销是大了一点。
2 就用对象去调用函数。
3 一般没必要。跟一般指针的用法差不多。
4 不是。

作者: Binzo   发布时间: 2011-12-19

1.类的对象跟一般的内置类型变量毫无区别,如果你觉得开销大,你可以new在堆上
2.那要看函数是静态的还是非静态的,非静态的可以用对象和指针来调用,静态的只能通过类名调用
3.指针调用类的函数不是你说必要不必要地问题
4.不是

作者: qscool1987   发布时间: 2011-12-19

如果调用成员的开销太大的话,那面向对象不是有没有什么实际意义了!

作者: kingstar158   发布时间: 2011-12-19