C++88个注意点子之21~30
来源:互联网 发布:智能网络推广系统 编辑:程序博客网 时间:2024/04/28 00:04
21. 函数返回非引用类型和引用类型时:
返回非引用类型: 调用复制构造函数
返回引用类型: 不调用复制构造函数
函数返回在表达式中,编译器会自动创建一个无命名的临时变量,将返回值赋给它。
22. 默认实参如果有一个形参为默认实参,那么后面的形参都必须又默认实参。
函数调用的实参按位置解析,默认实参只能用来替换函数调用缺少的尾部实参。
23.千万不要返回局部对象的引用。
千万不要返回指向局部对象的指针。
24. 默认实参初始化式可以是任何适当类型的表达式,如:int screenInit(int height = screenHeight());
25. 既可以在声明中指定默认实参,也可以在定义中。但在一个文件中,只能指定默认实参一次。
26. 静态局部对象在程序结束前不会消失。如:
void f()
{
static int x = 5;
}
但是变量的作业域没有变。
27. 内联函数主要用于解决小型函数的调用耗时问题。
内联函数可以放在头文件中定义。
28. 编译器隐式地将类定义中的成员函数作为内联函数。
如:
class a {
public:
void print()
{
std::cout << "Hello, world!" << std::endl;
}
int add(int t1, int t2);
}
类a的定义中print函数将自动作为内联函数展开,add函数不是内联函数,它的具体定义在类定义体中。
29. 类的每个成员函数都隐含了一个额外的this形参。如:上面的add中(a* const this, int t1, int t2)。
在成员函数后面的const作用为定义了这样的this指针:
const a* const this。即指向a类型的const指针,该指针值也是不可变的。所以this指针不能改变对象内变量值。
注: const对象的指针只能调用其const成员函数,如调用非const成员函数则会报错。
30. 构造函数可以重载
无形参的构造函数为默认构造函数。
在类中无显式定义任何构造函数,则编译器将自动合成默认构造函数。
若调用合成默认构造函数时,在类的初始化时,若类对象为全局变量,则内建类型初始化为0,否则为局部变量时内建类型未初始化。
- C++88个注意点子之21~30
- C++88个注意点子之71~88
- C++88个注意点子之6~10
- C++88个注意点子之11~20
- C++88个注意点子之31~40
- C++88个注意点子之41~50
- C++88个注意点子之51~70
- 点子
- 30个前景无限的网络创业点子,你能抓住一个吗?
- 想到好几个点子,也就是需求分析?
- C++88个注意点之1~5
- flickr之我们心中的点子
- 10个妙点子送你一天好心情
- 25个增加linux服务器安全的点子
- 我有个的点子,有关企业移动办公的
- 30个被风投看重的网络创业点子
- 30个被风投看重的网络创业点子
- Objective-C之注意点(一)
- The function size must be used with a prefix when a default namespace is not specified
- CCActionEase(4)
- ubuntu Qt版本无效: qmake不存在或者不可执行
- 说说std::endl函数
- hadoop机架感知
- C++88个注意点子之21~30
- 如果去掉webView底部的黑条
- 【Android自定义控件】聊天界面录音按钮的实现
- Android数据存储实现的5大方式
- SSH:Hibernate框架(Hibernate缓存机制及三种状态)
- Android launcher动态Icon的实现方法
- JavaEE_Mybatis_SpringMVC _Mybaits_lesson2_ 注入方式 原始DAO开发方法
- NSNotification和Delegate的区别
- 【LEETCODE】219-Contains Duplicate II