C++学习(2)——C++面向对象(类)

目录

类的访问

构造函数

析构函数


对象

        属性(静态特征)、操作(动态特征)   类类型定义的变量就叫对象

:(class

        数据成员、成员函数

类和对象的关系

        类是抽象的,对象是具体的,类是对象的抽象,对象是类的具体

类的定义:

        定义放在.h中记得加上条件编译,{}最后的;不要少掉。成员函数在.cpp中定义。

访问限定符

        public(公有的)、protected(受保护的)、private(私有的),一般来说先public,再protected,最后private。

        数据成员最好放在private中,并且只能在类里定义,按类型大小从小到大声明可以提高空间利用率。

类的访问

1、构造函数和析构函数的定义格式

        类名+域运算符(::)+(构造/析构)函数名()   注:构造函数和析构函数没有函数类型

2、普通成员函数的定义格式

        函数类型+类名+域运算符(::)+函数名(参数)

3、私有的数据成员的访问

        在类的外部不能直接访问,在类的成员函数可以直接访问,用成员名就可以访问

4、公有的数据成员的访问

        对象名+.+数据成员名

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

私有成员错误访问示例

类的数据成员修改

可以定义一个公有的成员函数,如setName(char *pname),或setColor(char *pcolor)等。

指针类型的对象的访问

        对象名->成员名,要用new开空间,会自动调用构造函数

构造函数

1、作用

        可以用来对数据成员初始化

2、什么时候系统会自动调用

        创建普通的对象或者用new开一个空间给对象,都会走构造函数。

3、是否可以重载

        可以重载,重载的构造函数一般有两个或两个以上参数,叫做普通构造函数。

4、构造函数种类

  1. 普通构造函数(有两个或两个以上参数
  2. 默认构造函数(没有参数,可以不声明,编译器将自动产生一个公共的默认构造函数。注:最好写
  3. 复制(拷贝)构造函数
  4. 类型转换构造函数(一个参数
  5. 构造函数使用默认参数

        如果一个构造函数的所有参数均有默认值,这时再定义无参数的默认构造函数无意义,会有二义性

类型转换构造函数

  1. 类的构造函数只有一个参数是非常危险的,因为编译器可以使用这种构造函数把参数的类型隐式转换为类类型
  2. 可以用explicit关键字,编译器不会把声明为explicit的构造函数用于隐式转换,它只能在程序代码中显示创建对象

析构函数

1、作用

        撤销对象前做清理工作,一般是释放对象动态申请的空间

2、什么时候系统会自动调用

        局部类类型的变量回收或者用delete给变量释放空间,都会走析构函数。

3、是否可以重载

        不可以重载

4、函数声明写法

        和构造函数类似,前面多了个~

5、默认析构函数

        如果没有定义析构函数,编译器会自动生成一个默认析构函数,默认析构函数是一个空函数

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值