C++ 函数重载的问题

来源:互联网 发布:旅游软件监管单位 编辑:程序博客网 时间:2024/05/21 10:24

函数重载
将同一个名字用于同一作用域的不同类型的多个函数的情况叫重载。
•什么样的函数是重载函数?
•只有signature(函数名、参数和函数的const属性) 不同才是重载,否则认为是相同的函数。(signature 不包括返回值和参数的缺省值。)
•函数前缀的访问控制不同也不是重载,而是相同的函数。
•在不同的非名字空间作用域声明的函数不是重载

void func(int a, int b);
void func(const int a,const int b);
不是函数重载

 

void fun(int *a,int *b);
void fun(int* const a,int* const b);
不是函数重载

 

void fun(int *a,int *b);
void fun(const int *a,const int *b);
这两个是重载函数

 

void fun(const int *a,const int *b);
void fun(int* const a,int* const b);
这两个是函数重载

 

•new运算符的语法格式为:new 类型名(初始值)
–其中,类型名指定了要分配存储空间的类型。
–当动态申请单个变量或对象时,可以有初始值,也可以没有初始值;当动态申请数组变量或对象时,不允许有初始值。
–要注意的是,只有类的构造函数参数为空(void)或全部参数都带有缺省值时,才可以动态申请数组对象。
•当动态空间申请成功,new运算符按要求分配一块内存,并返回指向该内存起始地址的指针;
•当动态空间申请不成功时,new运算符返回空指针NULL。

例:

(1) int *pi = new int;
–申请一个整数类型空间,由整数类型指针pi指示
(2) char *pc = new char( ‘a’);
–申请一个字符类型空间,由字符类型指针pc指示,该字符初始值为'a'
(3) Date *pmc = new Date( 9, 22, 2009);
–申请一个Date型空间由Date类型指针pmc指示,
–该Date类型空间初始值为2009年9月22日

原创粉丝点击