由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 写C++ function的时候到底啥时候要写const和&?
相关主题
C++ Singleton的实现请教一个IT题目
C++ Q48: illegal operation (C33)还有一个C++的考试题,请大家指点一下
c++里 这个template的写法是什么意思?C++ Q83: 这个const_cast什么意思?
C++: Q75 copy constructor 问什么用 const reference?[合集] 几个面试中碰到的问题
onsite面经问一个c++ virtual base class的问题
一道brianbench C++题请教2道c++的题 (转载)
请教template class怎么处理Inheritance问题(面试题)什么情况下pass by reference比pass by pointer好?
C++ online Test 一题1道brianbench 的题 c++
相关话题的讨论汇总
话题: const话题: class话题: c++话题: function话题: reference
进入JobHunting版参与讨论
1 (共1页)
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?

1 (共1页)
进入JobHunting版参与讨论
相关主题
1道brianbench 的题 c++onsite面经
RTI phone interview (soft. engineer intern)一道brianbench C++题
一道image processing题请教template class怎么处理Inheritance问题(面试题)
菜鸟追leetcode之一[text justification]C++ online Test 一题
C++ Singleton的实现请教一个IT题目
C++ Q48: illegal operation (C33)还有一个C++的考试题,请大家指点一下
c++里 这个template的写法是什么意思?C++ Q83: 这个const_cast什么意思?
C++: Q75 copy constructor 问什么用 const reference?[合集] 几个面试中碰到的问题
相关话题的讨论汇总
话题: const话题: class话题: c++话题: function话题: reference