c++之面向过程程序设计
2011-09-15 15:06
141 查看
一、概括:
c++在面向过程程序设计方面和c基本兼容,具体不兼容的见最后。本篇主要总结 函数重载,函数模板及泛型编程。c++是强类型语言,强类型语言灵活性较差,但效率很高,c++在保证效率的同时也追求灵活性。以上三个特性就是为了灵活性而设计的。
二、函数的重载
因为c++是强类型语言,所以具有相同逻辑不同参数类型的函数要分别实现,自然也要具有不同的函数名称。函数重载可以使具有相同逻辑的参数不同的函数具有相同的名称,这样做的意义在于可以使接口单一,清晰。
三、函数模板
函数重载机制可以让接口单一,清晰,但是我们还是要为不同的参数类型实现不同的函数,函数模板机制就是把参数类型抽象化,这样我们只需要写出函数模板,然后根据函数模板实例化出我们需要的函数。(这在脚本语言里是多么的平常的事情啊)
四、泛型编程
函数模板给于我们很多启示,数据类型的抽象化给编程带来了巨大的灵活性,
五、异常处理
c++在面向过程程序设计方面和c基本兼容,具体不兼容的见最后。本篇主要总结 函数重载,函数模板及泛型编程。c++是强类型语言,强类型语言灵活性较差,但效率很高,c++在保证效率的同时也追求灵活性。以上三个特性就是为了灵活性而设计的。
二、函数的重载
因为c++是强类型语言,所以具有相同逻辑不同参数类型的函数要分别实现,自然也要具有不同的函数名称。函数重载可以使具有相同逻辑的参数不同的函数具有相同的名称,这样做的意义在于可以使接口单一,清晰。
#include <stdio.h> #include <stdlib.h> int add(int num1,int num2) { return(num1+num2); } double add(double num1,double num2) { return(num1+num2); } int main(void) { printf("%d\n",add(3,4)); printf("%f\n",add(3.0,4.0)); system("pause"); return 0; } /* 因为和c语言兼容,所以就存在数据类型自动隐式转换,所以函数重载也存在自动隐式转换,就产生了 噩梦般的垃圾函数重载参数自动推演,在实际设计最好为没一个需要的操作可能设计对应的函数,避免让c++进行自动推演。 例如不要调用add(3,4.0),如果需要请设计一个 double add(int num1,double num2); */
三、函数模板
函数重载机制可以让接口单一,清晰,但是我们还是要为不同的参数类型实现不同的函数,函数模板机制就是把参数类型抽象化,这样我们只需要写出函数模板,然后根据函数模板实例化出我们需要的函数。(这在脚本语言里是多么的平常的事情啊)
#include <stdio.h> #include <stdlib.h> template <typename first_type,typename second_type> second_type add(first_type num1,second_type num2) //返回值类型必须由参数类型取得 { return(num1+num2); } int main(void) { printf("%d\n",add(3,4)); printf("%f\n",add(3,4.0)); printf("%f\n",add(3.0,4.0)); system("pause"); return 0; } /* 多么强大的功能,往往我们被其他的细枝末节所牵绊,而不敢往前。 */
四、泛型编程
函数模板给于我们很多启示,数据类型的抽象化给编程带来了巨大的灵活性,
五、异常处理
相关文章推荐
- C++对C的扩充(体现在面向过程程序设计部分)
- 3.1、面向过程的程序设计和算法
- 面向过程的程序设计语言学习要点
- C++一些基本概念总结【面向过程篇】——函数
- C++一些基本概念总结【面向过程篇】——指针
- 面向对象程序设计--C++/Java
- 面向过程部分 Java 和 C++ 的区别
- 【C++基础01】用面向过程和面向对象方法求解圆形面积
- C/C++学习日志之一—面向对象和面向过程的基本理解
- C++ 面向对象与面向过程
- c++新人,结构化程序设计与面向对象程序设计的比较(1)
- 面向对象程序设计-C++ Default constructor & Copy constructor& Destructor & Operator Overloading【第九次上课笔记】
- C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数
- 【20171014】python_语言设计(7)面向过程程序设计
- 面向对象程序设计-------c++继承小结
- {key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】
- 【C++】笔记五:用面向过程和面向对象方法求解圆形面积
- C++ 面向对象程序设计
- 【c++】面向对象程序设计之关于继承
- [Cpp] 面向对象程序设计 C++