【C++初阶】类,构造函数,this指针

一.类的结构和使用

        学过C的我们都知道结构体,而类算是结构体的升级版.c是面向过程编程,c++则是面向对象编程,这两者的区别可从类中发现,类里可以包含函数的的声明和定义

 同时类内部可以用类后面生命的变量,用起来比结构体舒服不少

类内部包含三种限定符,分别是保护,共有,私有 这几种修饰是针对外部而言的,不针对类内部,类内可以随意访问。类的默认访问权限是私有的,结构体的权限是公有,这是为了适应c语言。

二.类的储存

类其实有三种储存方式。比较常用的是第三种

1.成员和变量分别存放,这种方式非常浪费空间,因为假设创建多个实例,就会把相同的函数储存多次造成空间浪费。

2.函数存放在一个单独的类成员函数表,变量和函数地址存放在一起

3.只保存成员变量,所有函数放在公共代码区,编译链接的时候去公共代码区找到对应函数的地址再call,这种方法也是常用的

注意一点,类的储存和结构体一样有内存对齐的问题。

三.构造函数

构造函数的出现是为了解决初始化的问题,每次当我们想调用一个函数比如说链表或者顺序表都要初始化,难免会出现忘记初始化的问题。而构造函数就可以百分百初始化。

构造函数的函数名和类型名是一样的,它本身是一种特殊的函数,不能当作一般函数对待。没有返回值也不用写void.如果用户没有写构造函数的话编译器会自己生成一个。构造函数单纯就是为了初始化用的,一般搭配缺省参数使用

四.默认生成的构造函数

如果我们自己写了构造函数,系统就不会生成构造函数。系统默认生成的构造函数有个特点,对内置成员类型不做处理,对自定义成员类型调用它本身的构造函数。这点其实饱受诟病。非常的不便利

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值