C++编程经验汇总(未完)

本文总结了C++编程的一些关键知识点,包括函数的重载、数组的操作、引用的使用,以及面向对象编程中的堆与拷贝构造函数、类的继承与派生、虚函数的运用和多重继承的细节。特别强调了拷贝构造函数的重要性,以及在抽象类和虚函数中的设计原则。同时,还探讨了运算符重载的规则和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

过程化语言
一、函数
1
、重载函数需要在参数个数、参数类型或参数顺序上有所不同。
2
、默认函数从右往左逐渐定义
3
、内联函数不允许有复杂的结构控制语句。递归函数不能用来作内联函数
4
、函数的返回值时将值赋予一个生命期极短的临时变量,在完成返回值赋值后,该临时变量销毁。
5
、匹配重载函数的顺序:寻找严格的匹配->用过内部转换需求一个匹配->通过用户定义的一个转换寻求匹配。

二、数组
1
、二维数组可以通过将为进行顺序操作。此时传递的是二维数组首元素地址。

三、引用
1、引用在声明时必须初始化,但它不占内存空间。
2
、不许对void类型的元素、数组和NULL进行引用。
3
、不许引用一个非返回引用的函数的返回值。
4
、而返回引用的函数返回时不产生临时变量,但它返回的须是一个全局变量或静态变量,否则返回值会在函数结束后销毁造成无值返回。
5
、返回引用时的函数表达式可以作为左值。
6
、可以通过加const防止修改所引用单元的值。形式为:
形参:const int &a,实参为:a

面向对象程序设计
一、堆与拷贝构造函数
1、拷贝构造函数的形参必须是引用方式!
2
、当类需要析构函数需要析构资源(比如堆资源),则它也需要一个拷贝构造函数。
3、构造函数用于类型转换,用户告知的方式是定义一个带参数的构造函数,而只尝试含一个参数的构造函数。

二、类的派生与继承

1、派生类的构造顺序是:先用它基类的构造函数构造它的基类成分,再用它自己的构造函数构造它自身成分。
2
、若想把类作为函数的形参,接受可能传递的基类和其派生类,则这个形参必须是基类类型。这也就是迟后联编,也叫多态性,是面向对象程序语言的特性之一。其他两个是封装性和继承。这个基类形参可以实现基类和派生类声明的基类虚函数。、
3
、若是使用虚函数,必须在基类的函数声明中加virtual,否则在传参调用派生类的函数时,会被认为是基类的。而只有在加上virtual后,编译器才会进行迟后联编。
4
、虚函数要求:函数名相同、函数类型相同、返回类型相同。否则即使加了vitrtual也不被认为是迟后联编。在VC++中,即使是返回基类指针的成员函数也要求派生类返回的是基类的。
5
、抽象类只是被用于继承,它至少有一个纯虚函数,即标记为不具体实现的成员函数,而由抽象类的派生类对它进行不同的定义。抽象类不能有实例。纯虚函数是为派生类在基类中保留的一个位置。假如有个指向抽象类的指针,进行一个没在抽象类中声明的函数,则无法进行。则在继承中普遍存在,即基类指针只能操作基类成员,和识别派生类中的虚函数。

三、多重继承
1、多个类继承一个类,可在继承中加virtual,表示“如果还没有A类,则加入一个A的拷贝,否则就用已有的那个”,这样各以防止多重继承类的模糊性。
2
、多重继承的构造顺序是:虚拟继承类->非虚拟继承类->成员对象->类的构造函数。
3

存取方式
继承类型

Public

Protected

Private

Public

Public

Protected

Private

Protected

Protected

Protected

Private

Private

Private

Private

Private

基类中的Private成员不可被继承。而ProtectedPrivate派生的不是之类,因为它们所派生的类不能做基类能做的事,但可以在其Public中调用其基类的函数完成调用。

四、运算符重载
1、重载的形式:返回类型 operator 运算符号(参数说明);。
2
.  ::  . *  . ->  ? :不可被重载。
3
operator + 由值返回是因为它需要一个临时空间存放结果,如果用引用返回则不产生临时空间,无法存放结果。
operator ++由引用返回是因为它修改了自己的参数,需要返回引用以不产生临时变量而直接修改本身。若用临时变量返回的话,临时变量得到修改,而它本身却没能得到完全的修改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值