C++编程经验汇总(未完)
2005-06-03 23:10
465 查看
过程化语言
[/b]一、函数[/b]
1、重载函数需要在参数个数、参数类型或参数顺序上有所不同。
2、默认函数从右往左逐渐定义
3、内联函数不允许有复杂的结构控制语句。递归函数不能用来作内联函数
4、函数的返回值时将值赋予一个生命期极短的临时变量,在完成返回值赋值后,该临时变量销毁。
5、匹配重载函数的顺序:寻找严格的匹配->用过内部转换需求一个匹配->通过用户定义的一个转换寻求匹配。
二、数组[/b]
1、二维数组可以通过将为进行顺序操作。此时传递的是二维数组首元素地址。
三、引用
[/b]1、引用在声明时必须初始化,但它不占内存空间。
2、不许对void类型的元素、数组和NULL进行引用。
3、不许引用一个非返回引用的函数的返回值。
4、而返回引用的函数返回时不产生临时变量,但它返回的须是一个全局变量或静态变量,否则返回值会在函数结束后销毁造成无值返回。
5、返回引用时的函数表达式可以作为左值。
6、可以通过加const防止修改所引用单元的值。形式为:
形参:const int &a,实参为:a
[/b]面向对象程序设计
[/b]一、堆与拷贝构造函数
[/b]1、拷贝构造函数的形参必须是引用方式!
2、当类需要析构函数需要析构资源(比如堆资源),则它也需要一个拷贝构造函数。
[/b]3、构造函数用于类型转换,用户告知的方式是定义一个带参数的构造函数,而只尝试含一个参数的构造函数。
[/b]二、类的派生与继承[/b]1、派生类的构造顺序是:先用它基类的构造函数构造它的基类成分,再用它自己的构造函数构造它自身成分。
2、若想把类作为函数的形参,接受可能传递的基类和其派生类,则这个形参必须是基类类型。这也就是迟后联编,也叫多态性,是面向对象程序语言的特性之一。其他两个是封装性和继承。这个基类形参可以实现基类和派生类声明的基类虚函数。、
3、若是使用虚函数,必须在基类的函数声明中加virtual,否则在传参调用派生类的函数时,会被认为是基类的。而只有在加上virtual后,编译器才会进行迟后联编。
4、虚函数要求:函数名相同、函数类型相同、返回类型相同。否则即使加了vitrtual也不被认为是迟后联编。在VC++中,即使是返回基类指针的成员函数也要求派生类返回的是基类的。
5、抽象类只是被用于继承,它至少有一个纯虚函数,即标记为不具体实现的成员函数,而由抽象类的派生类对它进行不同的定义。抽象类不能有实例。纯虚函数是为派生类在基类中保留的一个位置。假如有个指向抽象类的指针,进行一个没在抽象类中声明的函数,则无法进行。则在继承中普遍存在,即基类指针只能操作基类成员,和识别派生类中的虚函数。
三、多重继承
[/b]1、多个类继承一个类,可在继承中加virtual,表示“如果还没有A类,则加入一个A的拷贝,否则就用已有的那个”,这样各以防止多重继承类的模糊性。
2、多重继承的构造顺序是:虚拟继承类->非虚拟继承类->成员对象->类的构造函数。
3、
基类中的Private成员不可被继承。而Protected和Private派生的不是之类,因为它们所派生的类不能做基类能做的事,但可以在其Public中调用其基类的函数完成调用。
四、运算符重载
[/b]1、重载的形式:返回类型 operator 运算符号(参数说明);。
2、. :: . * . -> ? :不可被重载。
3、operator + 由值返回是因为它需要一个临时空间存放结果,如果用引用返回则不产生临时空间,无法存放结果。
而operator ++由引用返回是因为它修改了自己的参数,需要返回引用以不产生临时变量而直接修改本身。若用临时变量返回的话,临时变量得到修改,而它本身却没能得到完全的修改。
[/b]一、函数[/b]
1、重载函数需要在参数个数、参数类型或参数顺序上有所不同。
2、默认函数从右往左逐渐定义
3、内联函数不允许有复杂的结构控制语句。递归函数不能用来作内联函数
4、函数的返回值时将值赋予一个生命期极短的临时变量,在完成返回值赋值后,该临时变量销毁。
5、匹配重载函数的顺序:寻找严格的匹配->用过内部转换需求一个匹配->通过用户定义的一个转换寻求匹配。
二、数组[/b]
1、二维数组可以通过将为进行顺序操作。此时传递的是二维数组首元素地址。
三、引用
[/b]1、引用在声明时必须初始化,但它不占内存空间。
2、不许对void类型的元素、数组和NULL进行引用。
3、不许引用一个非返回引用的函数的返回值。
4、而返回引用的函数返回时不产生临时变量,但它返回的须是一个全局变量或静态变量,否则返回值会在函数结束后销毁造成无值返回。
5、返回引用时的函数表达式可以作为左值。
6、可以通过加const防止修改所引用单元的值。形式为:
形参:const int &a,实参为:a
[/b]面向对象程序设计
[/b]一、堆与拷贝构造函数
[/b]1、拷贝构造函数的形参必须是引用方式!
2、当类需要析构函数需要析构资源(比如堆资源),则它也需要一个拷贝构造函数。
[/b]3、构造函数用于类型转换,用户告知的方式是定义一个带参数的构造函数,而只尝试含一个参数的构造函数。
[/b]二、类的派生与继承[/b]1、派生类的构造顺序是:先用它基类的构造函数构造它的基类成分,再用它自己的构造函数构造它自身成分。
2、若想把类作为函数的形参,接受可能传递的基类和其派生类,则这个形参必须是基类类型。这也就是迟后联编,也叫多态性,是面向对象程序语言的特性之一。其他两个是封装性和继承。这个基类形参可以实现基类和派生类声明的基类虚函数。、
3、若是使用虚函数,必须在基类的函数声明中加virtual,否则在传参调用派生类的函数时,会被认为是基类的。而只有在加上virtual后,编译器才会进行迟后联编。
4、虚函数要求:函数名相同、函数类型相同、返回类型相同。否则即使加了vitrtual也不被认为是迟后联编。在VC++中,即使是返回基类指针的成员函数也要求派生类返回的是基类的。
5、抽象类只是被用于继承,它至少有一个纯虚函数,即标记为不具体实现的成员函数,而由抽象类的派生类对它进行不同的定义。抽象类不能有实例。纯虚函数是为派生类在基类中保留的一个位置。假如有个指向抽象类的指针,进行一个没在抽象类中声明的函数,则无法进行。则在继承中普遍存在,即基类指针只能操作基类成员,和识别派生类中的虚函数。
三、多重继承
[/b]1、多个类继承一个类,可在继承中加virtual,表示“如果还没有A类,则加入一个A的拷贝,否则就用已有的那个”,这样各以防止多重继承类的模糊性。
2、多重继承的构造顺序是:虚拟继承类->非虚拟继承类->成员对象->类的构造函数。
3、
存取方式 [/b]继承类型 [/b] | Public [/b] | Protected [/b] | Private [/b] |
Public | Public | Protected | Private |
Protected | Protected | Protected | Private |
Private | Private | Private | Private |
四、运算符重载
[/b]1、重载的形式:返回类型 operator 运算符号(参数说明);。
2、. :: . * . -> ? :不可被重载。
3、operator + 由值返回是因为它需要一个临时空间存放结果,如果用引用返回则不产生临时空间,无法存放结果。
而operator ++由引用返回是因为它修改了自己的参数,需要返回引用以不产生临时变量而直接修改本身。若用临时变量返回的话,临时变量得到修改,而它本身却没能得到完全的修改。
相关文章推荐
- c++编程经验汇总
- VC编程经验汇总(一)
- C++编程经验-返回局部变量的讨论(转)
- C++中的XML配置文件编程经验
- C++编程经验的一些积累
- C++编程经验
- C++中的XML配置文件编程经验
- VC编程经验汇总(一)
- 一个计算机专业学生几年的编程经验汇总(三)
- VC编程经验汇总(一)
- VC编程经验汇总(三)
- 一个计算机专业学生几年的Java编程经验汇总
- 编程经验汇总
- 一个计算机专业学生几年的Java编程经验汇总
- 某高手之C++面试经验与试题汇总
- 一个计算机专业学生几年的编程经验汇总
- 一个计算机专业学生几年的Java编程经验汇总
- 一个计算机专业学生几年的编程经验汇总(收藏)
- C++的XML编程经验――LIBXML2库使用指南(转贴)
- java编程经验汇总(5)