【发布时间】:2012-08-03 09:07:21
【问题描述】:
这行是什么意思?
virtual void Encode (KDataStream & stream) const;
C++ 中的 const 是什么意思?
【问题讨论】:
标签: c++ parameters virtual
这行是什么意思?
virtual void Encode (KDataStream & stream) const;
C++ 中的 const 是什么意思?
【问题讨论】:
标签: c++ parameters virtual
这行是什么意思?
virtual void Encode (KDataStream & stream) const;
这是一个声明函数的语句。
virtual 表示它是一个成员函数,可以被同名的函数覆盖,并且在派生自该类的类中声明的兼容参数和返回类型。将根据调用它的对象的类型选择正确的版本(在运行时,如有必要)。
void 表示它不返回任何内容。
Encode 是函数的名称。
( 标志着参数列表的开始。
KDataStream是第一个参数的类型。
&表示参数通过引用传递。
stream 是赋予参数的名称;它用作文档,但可以在不改变含义的情况下被排除在声明之外。
) 标志着参数列表的结束。
const 表示它是一个成员函数,不能修改它所调用对象的非静态、非可变数据成员。它还允许在声明为 const 的对象上调用它。
; 标志着语句的结束。
【讨论】:
意思是——pass by reference。
【讨论】:
方法末尾的'const'表示方法实现不会改变任何成员变量的值。因此,通过在类接口本身中看到这一点(不必知道实现),对象的客户端就可以知道这种行为。
【讨论】:
阅读指针,如果你想用 c++ 编写代码,你需要知道它们是如何工作的:
http://www.cplusplus.com/doc/tutorial/pointers/
& 表示你传入的是流的内存地址而不是流的值
【讨论】:
& 来声明引用与在表达式(如您的链接中)中使用它来获取对象的地址完全不同。