第7章 函数

可以将指向const对象的指针初始化为指向非const对象,但不可以让指向非const对象的指针指向const对象。

如果函数使用非引用的非const形参,则既可以给该函数传递const实参,也可传递非cosnt的实参。
如果函数具有普通的非const引用形参,则显然不能通过const对象进行调用。
非const引用形参只能与完全同类型的非const对象关联。

应该将不需要修改的引用形参定义为const引用。普通的非const引用形参在使用时不太灵活。这样的形参既不能用const对象初始化,也不能用字面值或产生右值的表达式实参初始化。

返回类型不是void的函数必须返回一个值。允许主函数main没有返回值就可结束。

默认实参只能用来替换函数调用缺少的尾部实参。

常量成员函数:类的成员的函数,并可以由该类类型的常量对象调用。常量成员函数不能修改所操纵的对象的数据成员。
bool same_isbn(const Sales_item &rhs) const
    { return isbn == rhs.isbn; }
const改变了隐含的this形参的类型。
在调用total.same_isbn(trans)时,隐含的this形参将是一个指向total对象的const Sales_Item*类型的指针。

构造函数是放在类的public部分。
如果将构造函数定义为private的,则不能定义类的对象。
由编译器创建的默认构造函数通常称为合成的默认构造函数,合成的默认构造函数不会自动初始化内置类型的成员。

无法将整型值传递给枚举类型的形参,但可以将枚举值传递给整形形参。

仅当形参是引用或指针时,形参是否为const才有影响。

不能基于指针本身是否为const来实现函数的重载。
f(int *);
f(int *const); //redeclaration

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值