[C++ Primer] 第七章的若干问题
来源:互联网 发布:淘宝上首页要多少钱 编辑:程序博客网 时间:2024/06/06 07:20
1 将const引用作为形参(P203)
如果函数的形参是非const的引用,就不能通过const对象进行调用,而且传递一个右值或者需要进行类型转换的对象同样是不允许的,因为非const引用的形参只能与完全同类型的非const对象关联。
忠告:当确定函数不改变引用形参的值时,应该将引用形参定义为const引用。
2 容器作为形参
当将容器作为形参时,要进行容器之间的拷贝,代价较大。
忠告:尽量不将容器作为形参,而是通过传递迭代器来传递容器。
3 引用返回左值(P215)
返回引用的函数返回左值,因此,这样的函数可用于任何要求使用左值的地方,例如赋值。
4 指定默认实参的约束(P219)
既可以在函数声明也可以在函数定义中指定默认实参。但是,在一个文件中,只能为一个形参指定默认实参一次。如果在函数定义的形参表中提供默认实参,那么,只有在包含该函数定义的源文件中调用该函数时,默认实参才是有效的。
忠告:在函数声明中指定默认实参,并将该声明放在合适的头文件中。
5 内联函数(P222)
内联机制适用于优化小的,只有几行的而且经常被调用的函数,通常内联函数在头文件中定义,在头文件中加入或者修改内联函数时,使用了该头文件的所有源文件都必须重新编译。
忠告:将代码短小而且经常被使用的函数定义为内联函数,内联函数在头文件中定义。
6 定义成员函数的函数体(P223)
编译器隐式地将在类内定义的成员函数当作内联函数。
忠告:对于代码小的而且常用的类成员函数,在类的头文件代码中直接定义。
7 this指针的引入(P224)
每个成员函数(除了static成员函数之外)都有一个额外的、隐含的形参this,在调用成员函数时,形参this初始化为调用函数的对象的地址。
8 const成员函数(P224)
定义形式为,在函数形参后面括号之外加const。称之为常量成员函数,这种函数不能修改调用该函数的对象。
忠告:由于const对象、指向const对象的指针或者引用只能用于调用其const成员函数,因此可以将不改变对象本身的函数定义为const成员函数。
9 合成的默认构造函数(P227)
即编译器合成的默认构造函数,这里主要说的是合成的默认构造函数对于类数据成员的初始化问题。对于具有类类型的成员,会调用该成员所属类的默认构造函数进行初始化。对于内置类型,如果对象在全局作用域中定义或者定义为静态局部对象,则这些成员被初始化为0,如果是局部对象,则这些成员没有被初始化。这与内置类型在程序中的初始化类似。对于内置类型,如果内置类型定义为全局的或者是静态局部的,就被初始化为0,如果是局部自动变量,则没有被初始化。
- [C++ Primer] 第七章的若干问题
- C++primer 第七章
- c primer plus 第七章
- c primer plus 第七章
- c primer plus 第七章
- c primer plus 第七章
- 第七章 类 c++primer
- C++Primer习题第七章
- [C++ Primer] 第四章的若干问题
- c primer plus 第七章 1
- c primer plus 第七章 2
- c primer plus 第七章 3
- C++Primer笔记 第七章 函数
- 《C Plus Primer》第七章编程题
- C++Primer读书笔记(第七章)
- [1]【C++Primer】第七章 函数
- c++primer第七章函数7.31
- C++Primer第七章:类(学习摘录)
- vc folat和int转string
- 编写高质量代码-改善C++程序的150个建议-1
- Android中设置Ethernet为默认网络类型
- poj 2154 Color ----polya计数
- openFire 源码解读
- [C++ Primer] 第七章的若干问题
- php随机字符串
- Cookie操作类 实现记住用户名和密码的功能
- mysql servlet调用插入带有格式的大文本换行符无效的问题
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
- javascript学习(2)
- 用例建模指南 作者:傅纯一 选自: IBM
- from_unixtime()与UNIX_TIMESTAMP
- Android实现图片滚动控件