首页 > 其他 > 详细

面向对象基础

时间:2021-05-26 21:25:09      阅读:14      评论:0      收藏:0      [点我收藏+]

1.构造函数:

构造函数没有返回值
如果没有自己实现构造函数,系统会自动生成一个默认构造函数,自动生成的构造函数参数列表为空,函数体为空,不做任何事情
如果自己实现了构造函数,系统就不会生成默认构造函数了
在对象进行实例化的时候会根据参数自动调用相应构造函数

2.拷贝构造函数

用一个已经存在的对象实例化一个正在生成的对象的时候会自动调用拷贝构造函数
如果没有自己实现拷贝构造函数,系统会自动生成默认拷贝构造函数,
默认的拷贝构造函数只进行浅拷贝
如果自己实现了,系统就不生成了

注意:
1.传引用
2.防止浅拷贝

3.赋值运算符

用已存在的对象给已存在的对象赋值时候会自动调用赋值运算符的重载
如果没有自己实现的赋值运算符,系统会自动生成默认的赋值运算符重载函数
默认的赋值运算符重载函数只进行浅拷贝
如果自己实现了,系统就不会生成了

注意:
1.防止自赋值
2.防止内存泄漏
3.防止浅拷贝

4.析构函数

在对象死亡的时候会自动调用析构函数//生存周期结束时

如果不自己实现析构函数,系统会自动生成一个默认的析构函数,
默认的析构函数啥都不做
如果自己实现了析构函数,系统就不会生成默认的析构函数了

//析构函数:后构造的先析构


注意:
防止内存泄漏

5.this指针

代表是对象自身的指针
哪里会使用this:
成员方法调用的时候,会在第一个参数默认传入this指针
成员方法的第一个参数默认是this指针
类中使用到成员的地方,成员前面默认加上this的解引用

6.const成员变量

必须在初始化列表中进行初始化 或者 在声明处


const成员方法
const加到方法的参数列表后面,修饰的是 *this
const对象只能调用const方法(析构和构造和static函数除外)

7.初始化列表

用于初始化成员
只能是构造函数有初始化列表
所有的必须初始化的成员,必须在初始化列表中进行初始化

8.static 成员变量

不占对象空间
存储在数据段
所有的对象共享一个
调用可以不依赖对象
必须在类外进行初始化,初始化时候要加上类的作用域
初始化时候无论该static成员私有还是共有都可以访问(其他地方的访问根据访问权限属性)

static成员方法:
调用可以不依赖对象
函数参数没有this指针
static 方法内不可以使用普通的成员变量和成员方法

 

9.类之间的代理关系

一个类完全套用另一个类的方法
一个的方法集合属于另一个类的方法集合

10.友元

友元类:


友元函数:

类中调用私有函数,用友元, 友元(所有私有的东西进行公开)

11.类成员如果存在对象

构造时候先构造成员对象,再构造自身对象
析构时候先析构自身对象,再析构成员对象

成员对象的构造默认会放在初始化列表
如果成员对象没有默认构造函数,或者需要再构造成员对象时候
传参数,就必须手动将成员对象的构造写入初始化列表

面向对象基础

原文:https://www.cnblogs.com/xpei-1124/p/14814624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!