C++编程技巧(一)

2016-02-19 13:11 5 1 收藏

下面图老师小编要跟大家分享C++编程技巧(一),简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】

C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。
  
  一、使用new和delete进行动态内存分配和释放
  
  运算符new和delete是C++新增的运算符,提供了存储的动态分配和释放功能。它的作用相当于C语言的函数malloc()和free(),但是性能更为优越。使用new较之使用malloc()有以下的几个优点:
  
  (1)new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。
  
  (2)自动地返回正确的指针类型,不用进行强制指针类型转换。
  
  (3)可以用new对分配的对象进行初始化。
  
  使用例子:
  
  (1)int p;
  p=new int[10]; //分配一个含有10个整数的整形数组
  delete[] p; //删除这个数组
  
  (2)int p;
  p=new int (100);//动态分配一个整数并初始化
  
  二、使用inline内连函数替代宏调用
  
  对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。例如宏:#define abs(a) ((a)0?(-a):(a)), 当使用abs(I++)时,这个宏就会出错。
  
  所以在C++中应该使用inline内连函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。
  
  使用内连函数只须把inline要害字放在函数返回类型的前面。例如:
  
  inline int Add(int a,int b);//声明Add()为内连函数
  
  这样编译器在碰到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。
  
  三、使用函数重载
  
  在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C++中,函数名相同而参数不同的两个函数被解释为重载。例如:
  
  void PutHzchar str //在当前位置输出汉字
  void PutHzint xint ychar str //在x,y处输出汉字
  
  使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中,使函数名易于治理和使用,而不必绞尽脑汁地去处理函数名。
  
  四、使用引用(reference)代替指针进行参数传递
  
  在C语言中,假如一个函数需要修改用作参数的变量值的时候 ,参数应该声明为指针类型。例如:
  
   void Addint a a++
  
  但是对于复杂的程序,使用指针轻易出错,程序也难以读懂。在C++中,对于上述情况 可以使用引用来代替指针,使程序更加清楚易懂。引用就是对变量取的一个别名,对引用进行操作,这就相当于对原有变量进行操作。例如使用引用的函数定义为:
  
  void Addint a a++ //a为一个整数的引用
  
  这个函数与使用指针的上一个函数的功能是一样的,然而代码却更为简洁和清楚易懂。

来源:http://www.tulaoshi.com/n/20160219/1603289.html

延伸阅读
前文回顾:C/C++编程新手错误语录  错误语录(续一) (13)“整型变量仅仅意味着一个整数” !-- frame contents -- !-- /frame contents -- 当我们还是一个新手,看整型就是整数; 当我们成为高手,看什么都是整型。 整型,在所有C/C++基本数据类型中最富有艺术魅力和奇幻色彩。 我们从某闻名...
常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。 5.1 为什么需要常量 如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦? (1) 程序的可读性(可理解性)变差。程序员自己会忘记那些数字或...
第7章 内存治理 欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存治理程序,往往提心吊胆。假如不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地...
C/C++语言中有许多对初学者(甚至是有经验的编程人员)来说很轻易范的错误。通晓这样的错误可使你免于陷入其中。 忘记初始化指针 !-- frame contents -- !-- /frame contents -- 这种错误只是一般"忘记初始化变量"错误的一个非凡形式(C/C++中变量不会自动初始化,而Basic可以)。使这种错误更糟糕的原因是它的后果往往更加糟...
在准标准C++中,有关缺省变量值的限制非常模糊。基于此,很多编译器答应开发人员将缺省变量值包含在函数声明,指向函数的指针和引用,成员函数的指针,以及typedef声明中。 请看一下以下的程序: strUCt A{void func(int x=5){}};void g(int n=12){}// 根据C++标准,不能在以下声明中使用缺省变量值。void (*pf)(inti=120);...

经验教程

695

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部