a**********3 发帖数: 64 | 1 傻傻分不清。比如 function(const Class & c); 这个const什么情况下要定义成const
? 还有就是pass by reference这个,一般是不是function都最好写成pass by
reference的用&? 以前用java,改成c++还是比较糊涂,求教。 |
d**********x 发帖数: 4083 | 2 1. 如果function不会改变c的值,则一定加const...如果要改变c的值,则function
name一定要很明确表示这个改变语义
2. 传ref和传指针其实是一回事,没有拷贝的消耗,除了built-in类型,一般都传引用
或者指针比较好,除非你明确需要一个副本。
const
【在 a**********3 的大作中提到】 : 傻傻分不清。比如 function(const Class & c); 这个const什么情况下要定义成const : ? 还有就是pass by reference这个,一般是不是function都最好写成pass by : reference的用&? 以前用java,改成c++还是比较糊涂,求教。
|
a**********3 发帖数: 64 | 3 多谢大牛。还有个问题就是关于你说的这两条:
1.如果加了const,那么在定义Class的时候怎么写?怎么体现出根据这个Class生成的c
是个const?
比如我写constructor
void Class::Class(); 怎么保证生成的c是个const?
2.同样的问题,在定义Class的时候,怎么体现出c是个reference?
【在 d**********x 的大作中提到】 : 1. 如果function不会改变c的值,则一定加const...如果要改变c的值,则function : name一定要很明确表示这个改变语义 : 2. 传ref和传指针其实是一回事,没有拷贝的消耗,除了built-in类型,一般都传引用 : 或者指针比较好,除非你明确需要一个副本。 : : const
|
O*******d 发帖数: 20343 | 4 把函数变量分成两类,一类是in,另一类是out。 in的最好用const,对于object,最
好用ref。 out的最好用pointer。 这样在读函数时,很容易看出来那些是in,那些是
out。 一般把in放在前边,out放在后边。最好不要混放。
const
【在 a**********3 的大作中提到】 : 傻傻分不清。比如 function(const Class & c); 这个const什么情况下要定义成const : ? 还有就是pass by reference这个,一般是不是function都最好写成pass by : reference的用&? 以前用java,改成c++还是比较糊涂,求教。
|
y*******o 发帖数: 6632 | 5 const和你怎么定义class没关系
比如java里面可以final int,和int
const也一样
如果你想要const construct,c++没这个功能,你可以把construct变成private,然后写
一个createInstance method 返回const variable
c
【在 a**********3 的大作中提到】 : 多谢大牛。还有个问题就是关于你说的这两条: : 1.如果加了const,那么在定义Class的时候怎么写?怎么体现出根据这个Class生成的c : 是个const? : 比如我写constructor : void Class::Class(); 怎么保证生成的c是个const? : 2.同样的问题,在定义Class的时候,怎么体现出c是个reference?
|