01 C++的引用,const,new/delete,重载,内联函数的概念辨析
2021-06-06 12:02
标签:val targe 运行速度 ade 编译 函数返回 必须 class 数组 要求:无法通过常引用修改变量值 重载函数具有以下特点: 编译器如何区分重载函数? 重载的好处: 重载的实例: 注意点: 实例: 概念辨析: 01 《新标准C++程序设计》 郭炜 编著 02 MOOC 程序设计与算法(三) 2018年4月7日笔记 01 C++的引用,const,new/delete,重载,内联函数的概念辨析 标签:val targe 运行速度 ade 编译 函数返回 必须 class 数组 原文地址:https://www.cnblogs.com/kfcuj/p/14613944.html
1 引用的概念
1-0 基本概念
1-1 变量的引用
int a = 0;
int &r = a; //变量r的类型为int &
1-2 函数返回值的引用
#include
1-3 常引用
#include
1-4 常引用与非常引用的转换
1. const T & 与 T & 是不同的类型(常引用与非常引用属于不同的类型)。
2. 常引用可以被普通引用以及普通类型变量初始化。
3. 常量以及常引用无法初始化引用。
1-5 const关键字的使用
/*
1. 定义常量指针,无法通过常量指针修改内容
2. 函数参数为常量指针时,可避免函数内部不小心改变 参数指针所指地方的内容。
3. 定义为const的对象的所有数据成员的值都不能被修改。凡出现调用非const的成员函数,将出现编译错误。但构造函数除外。因为如果调用非const函数无法保证对象不被修改。与const的规则的相违背。
*/
const int * p = & n; //定义常量指针
const int & r = n; //定义常引用
概念辨析:
常引用所引用的变量,其值不能被修改(错误,可以通过引用的对象修改原有的变量)
不能通过常量指针,去修改其指向的变量(正确)
常量指针一旦指向某个变量,就不能再指向其他变量(错误)
2 内存的分配
2-1 new与delete的使用
P = new T;
delete 指针;
------------------------------------------------------------------------------
int * pn;
pn = new int;
* pn = 5;
P = new T[N];
delete [ ] 指针;
2-2 指针使用注意点
-----------------------------------
char * p = new int;
p = ‘a‘; // 错误,字符类型赋值给指针变量
delete p;
----------------------------------
int *p = new int[25];
p[10] = 100; // 错误,越界
delete p;
-----------------------------------
char * p = new char[10]; // 正确
p[0] = ‘K‘;
delete [] p;
3 内联函数与函数重载与函数的缺省参数
3-1 内联函数
/*使用inline关键字定义内联函数*/
inline int Max(int a,int b)
{
if( a > b) return a;
return b;
}
3-2 函数重载
int Max(double f1,double f2) { } // (1)
int Max(int n1,int n2) { } // (2)
int Max(int n1,int n2,int n3) { } // (3)
Max(3.4,2.5); //调用 (1)
Max(2,4); //调用 (2)
Max(1,2,3); //调用 (3)
Max(3,2.4); //error,没有参数1为int类型,参数2为double的类型的重载函数
3-3 函数的缺省参数
void func( int x1, int x2 = 2, int x3 = 3){ }
func(10 ) ; //等效于 func(10,2,3)
func(10,8) ; //等效于 func(10,8,3)
func(10, , 8) ; //不行,只能最右边的连续若干个参数缺省
A) 多个重载函数的参数个数必须不同。 (错误,可能时类型不同)
B) 两个函数,参数表相同,返回值类型不同,它们是重载关系。 (错误)
C) 调用一个第二个和第三个参数都有有缺省值的函数时,可以不写第二个实参而写第三个实
参。 (错误,参数时按照顺序匹配的)
D) 使用内联函数的目的是提高程序的运行速度
参考资料
文章标题:01 C++的引用,const,new/delete,重载,内联函数的概念辨析
文章链接:http://soscw.com/essay/91263.html