c++类和对象的探究(访问控制,构造和析构函数)

人们常说的面向对象的三个特征:封装,继承,多态;

说到类,肯定能想到class关键字和struct关键字的区别:其实就是默认属性的访问权限不同,struct定义时,默认为public,class定义时,默认为private;

那就首先说说类的封装吧:类的封装简单来说就是将属性和方法合成一个整体,并且可以设置访问权限(私有,公有,保护)

然后介绍访问权限:public:公有,修饰的成员属性或者方法可以在类的内部和外部调用

private:私有,修饰的成员属性或者方法只能在内部使用

protected:能在类内部和继承的类对象中使用;

说了这么多,终于要开始说类了,其实类有两个特殊的函数:构造函数和析构函数;

这两个函数呢,是一般情况下类实例为对象的时候,自动调用的,构造函数在对象建立时调用,析构函数在对象销毁时调用;

而这其中构造函数主要分为三种:无参数构造函数(不需要参数的构造函数),有参数构造函数(需要传入参数),复制构造函数(用其他对象来初始化生成一个新对象);

其中要说明一点就是

1)当类中没有定义任何一个构造函数时,c++编译器会提供默认无参构造函数和默认拷贝构造函数

2)当类中定义了拷贝构造函数时,c++编译器不会提供无参数构造函数

3) 当类中定义了任意的非拷贝构造函数(即:当类中提供了有参构造函数或无参构造函数),c++编译器不会提供默认无参构造函数

4 )默认拷贝构造函数成员变量简单赋值

总结:只要你写了构造函数,那么你必须用。

另外,拷贝构造函数这里要避免浅拷贝问题,也就是说,假如存在指针变量,当用一个对象去初始化另一个对象的时候,指针仅仅是值的拷贝,并没有重新分配内存,加入一个对象把该内存释放了,另一个指针再去访问就会引起程序崩溃.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值