C++Primer读书笔记(三)
来源:互联网 发布:wps表格怎么筛选数据 编辑:程序博客网 时间:2024/06/02 16:21
函数返回值需要注意点:
1、千万不要返回局部对象的引用
当函数执行完毕时,将释放分配给局部对象的内存空间,此时,对局部变量的引用就会指向不确定的内存。举例:
const string &manip(const string &s)
{
string ret = s;
return ret;
}
2、千万不要返回指向局部对象的指针
函数返回类型可以是大多数类型。特别地,函数也可以返回指针类型。一旦函数结束,局部对象被释放,返回的指针就变成了指向不再存在的对象的悬垂指针。
默认实参:
string ScreenInit(string::size_type height = 24, string::size_type width = 80; char backgroud = " ")
{
////
}
调用包含默认实参的时候,可以为该形参制定参数,也可以不指定。
指定默认实参的约束:
既可以在函数申明也可以在函数定义中指定默认实参,但是,在一个文件中,只能为一个形参指定默认实参一次。举例:
//ff.h
int ff(int = 0) //函数声明
//ff.c
#include"ff.h"
int ff(int i = 0){} //函数定义
1、千万不要返回局部对象的引用
当函数执行完毕时,将释放分配给局部对象的内存空间,此时,对局部变量的引用就会指向不确定的内存。举例:
const string &manip(const string &s)
{
string ret = s;
return ret;
}
2、千万不要返回指向局部对象的指针
函数返回类型可以是大多数类型。特别地,函数也可以返回指针类型。一旦函数结束,局部对象被释放,返回的指针就变成了指向不再存在的对象的悬垂指针。
默认实参:
string ScreenInit(string::size_type height = 24, string::size_type width = 80; char backgroud = " ")
{
////
}
调用包含默认实参的时候,可以为该形参制定参数,也可以不指定。
指定默认实参的约束:
既可以在函数申明也可以在函数定义中指定默认实参,但是,在一个文件中,只能为一个形参指定默认实参一次。举例:
//ff.h
int ff(int = 0) //函数声明
//ff.c
#include"ff.h"
int ff(int i = 0){} //函数定义
而通常应在函数声明中指定默认实参,并将声明放在合适的头文件中。
重载确定的三个步骤:
1、候选函数(与被调用函数同名)
函数重载确定的第一步是确定该调用所考虑的重载函数集合,该集合中的函数称为候选函数。
2、选择可行函数
从候选函数中选择一个或者多个函数,它们能够用该调用中指定的实参来调用。
可行函数满足两个条件:
1、函数的形参个数与该调用函数的实参个数相同;
2、每一个实参 的类型必须与对应的类型匹配,或者可被隐式转换为对应的形参类型
3、寻找最佳匹配
- C++Primer读书笔记(三)
- 《C++primer》读书笔记三
- 《C++Primer》读书笔记(三)字符串、向量、数组
- c++ primer读书笔记(三)
- C++Primer读书笔记(一)
- C++Primer读书笔记(四)
- C++Primer读书笔记(五)
- C++Primer读书笔记(六)
- C++Primer读书笔记(七)
- C++Primer读书笔记(八)
- C++Primer读书笔记(九)
- C++Primer读书笔记(十)
- C++Primer读书笔记(十一)
- C++Primer读书笔记(十二)
- C++Primer读书笔记(十三)
- C++primer读书笔记(一)
- 《C++primer》读书笔记(1)
- 《C++Primer》读书笔记(2)
- C++拷贝构造函数(深拷贝,浅拷贝)
- 关于Mstar手机开发中关于对flash实际空间大小的简单说明
- 在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails
- c#单一程序运行续-最小化后显示
- 网络编程之socket常用接口
- C++Primer读书笔记(三)
- Tomcat全攻略
- UDP协议TCP/IP协义的区别
- 开源云计算系统Hadoop核心部件与Google的对应关系
- OpenGL 在Windows系统中显示文字
- AD中FSMO五大角色的介绍及操作(转移与抓取)
- 学习shell
- java环境变量 jdk jre jvm区别 java_home path设置 总结
- 转换图片 Bitmap To BitmapImage