C++函数设计和使用
来源:互联网 发布:linux 切换root 编辑:程序博客网 时间:2024/06/16 07:06
/*
*程序名称:CppFunction
*程序描述:C++函数设计和使用
*编写时间:20121214
*/
#include <iostream>
using std::cout;
/*
*重载:
*1.函数同名;
*2.每个函数所参数个数不同;
*3.参数个数相同的,至少有一对对应参数类型不同。
*注意:
* 1.参数如果是指针和数组,他们的解释方式是一样的,所传送的参数都是地址
* 2.如果重载带有引用参数的函数,不能把给定类型type的函数重载为参数类型是type&(引用)的函数
* 3.const仅能用于在函数签名时,区分是为引用定义参数,还是为指印定义参数。对于任何基本数据类型T,
* 参数类型是const T的函数都会解释为参数类型是T的重载函数,const会被忽略。
* 4.如果参数类型是指向type的指针和const type的指针就不同了,const表示禁止修改,没有const修饰符
* 初始值可以通过指针修改。
*/
bool larger(int param1,int param2){
cout << "larger int:";
if(param1 > param2){
return true;
}else{
return false;
}
}
bool larger(double param1,double param2){
cout << "larger double:";
if(param1 > param2){
return true;
}else{
return false;
}
}
/*
*函数模板(template):类似Java中的范式
*申明:template <class Type> Type fundctionName(参数列表);
*说明:
* 1.template是关键字,表示这是一个模板
* 2.<class Type> 表示参数列表,class是关键字,表示Type是一个类型,可以是基本顾类型,也可以是类类型
* 3.模板的定义或申明必需放在函数的调用之前,和普通的函数一样;
* 4.调用时可以显式指定模板参数;
*/
//定义模板
template <class T> T tlarger(T param1,T param2){
return param1 > param2 ? param1 : param2;
}
//重载模板
template <class T> T tlarger(T param1,T param2,int param3){
return param1 > param2 ? param1 + param3 : param2 + param3;
}
//带有多个参数的模板
template <class Tone,class Ttwo> Tone tsum(Tone param1,Ttwo param2){
return param1 + param2;
}
/*
*函数指针:指针指向函数的地址,在程序报告过程中, 在不同的时候可以指向不同的函数;
*申明:type (*point) (参数类型列表)
*说明:
* 1.type是所指向的函数的返回类型;括号中是指针名,前面带有星号;
* 2.初始化时直接将函数赋给指针函数即可
* 3.在程序中,可以使用指针调用函数
* 4.函数指针必需包含要调用的函数地址,以及函数的参数列表和返回类型;
* 5.可以把函数指针作为参数传送
*/
//定义函数指针并初始化,注意是参数类型列表
bool (*plarger) (int,int) = larger;
int main(){
//重载
cout << larger(1,2); //0
cout << "\n";
cout << larger(3.7,3.5); //1
cout << "\n";
//模板
cout << "字符型:" << tlarger('a','c'); //c
cout << "\n";
cout << "浮点型"<< tlarger(3.2,3.5); //3.5
cout << "\n";
//显式调用
cout << "浮点型"<< tlarger<int>(4.2,3.5); //4
cout << "\n";
//调用重载模板
cout << "重载模板"<< tlarger(3.2,3.5,10); //13.5
cout << "\n";
//调用带有多个参数的模板
cout << "多个参数的模板:"<< tsum(1,'a'); //98
cout << "\n";
//调用函数指针
cout << "函数指针:"<< plarger(5,3); //1
cout << "\n";
}
- C++函数设计和使用
- xcode objcet c 函数定义和使用
- C程序语言strstr函数分析和使用
- c中多参函数的实现和使用
- C 【printf 和 scanf 函数的使用】
- c++:使用function模板和bind函数
- c函数设计
- 从小函数和小类看大设计----小话c++(4)
- Effective C++:类与函数的设计和申明
- C语言函数设计的一般原则和技巧
- C语言函数设计的一般原则和技巧
- C语言休眠函数和暂停函数使用案例
- C语言函数机制的优点和函数的使用
- C/C++]可变参函数的定义和使用【转】
- c函数里面使用objective-c对象和方法
- C语言 sscanf 和 sprintf函数的说明和使用
- python程序设计基础4:python函数设计和使用
- [C++]实验四:掌握内联函数的使用、参数个数不确定的函数的设计...
- struts2+spring+hibernate集成(annotation版)
- wxpython 无法退出
- Windows与Linux共享文件夹互相访问
- 正弦余弦定理
- 可选的Int参数在CPP目标上导致的编译错误
- C++函数设计和使用
- How to calculate CRC in C#?
- TCP/IP和HTTP的联系
- How to Use Instruments in Xcode
- 扇形坐标
- weblogic 调jvm堆内存,非堆内存,线程数
- POJ 1789 Truck History
- 隐藏(删除) Preference 小结
- 优秀员工的十八个习惯