c++类和对象

1.类的定义

类定义格式

访问限定符

类域

2.类的实例化

实例化概念

类对象大小

this指针

                                        一、类的定义

1.类定义格式

       (1).class为定义类的关键字,其中stack为类的名字(当然类的名字可以自己随意取),{}中为类的主体。括号中有类的成员分别由类中的变量和函数组成。其中变量是指类的属性或成员,类中的函数称为类的方法或成员函数。
        下图为类中所定义的函数范例

        下图为类中成员变量示例

        下图为类对象创建与调用函数功能示例

2.访问限定符

        (1)c++一种实现封装的方式,用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择的将其接口提供给外部的用户使用
        (2)c++的访问限定符有三种public、private和protected,其中public修饰的成员在类外可以直接被访问;protected和private在类外是不能直接被访问的。
                                        private的作用如下图所示

                        当我们把private改成public时我们发现这个程序报错解决了

        这时我们可以得到一个结论:我们可以将一些设为private,一些设为public。public是能够通过类外访问类里面的功能,private可以将一些设为私密仅自己可见,不能让其他人修改,大大加强了安全性。
(3)访问作用符是从该访问的限定符出现的位置开始直到下一个访问限定符出现时为止,如果后面没有访问限定符,作用符在}中即类结束

(4)class定义的成员如果没有被访问限定符修饰其默认为private。

                                类中没有限定符时,c++类默认将其设为private

3.类域:

类定义了一个新的作用域,类的所有成员都在类的作用域中,在类外定义成员时,需要使用::作用域操作符指明成员属于哪个类域。

类域的编译查找规则,上面程序中init如果不指定类域Date,那么编译器就会把init当成全局函数,那么编译时,找不到类中成员的声明和定义在哪里,就会报错。指定类域就能够找到init是成员函数,当前域找不到,就会到类域里去找

                                        二、类的实例化

                                                        1.实例化概念

        (1)用类类型在屋里内存中创建对象的过程
        (2)类是对象进行一种抽象描述,是一个模型一样的东西,限定了类有哪些成员变量,这些变量只是声明,没有分配空间,用类实例化对象才会分配空间
        (3)一个类可以实例化多个对象,实例化出的对象占用实际的物理空间

2.类对象大小

(1)按照内存对其规则计算对象大小。其中对象只计算变量,类其中的函数会转化为一个地址,当我们需要调用这个函数的时候会直接calloc哪个地址。

根据这张图我们可以发现第一个a的大小为8个字节,跟随内存对齐原则的计算,计算出来的字节大小。而b中根本没有变量只有函数,c中函数和变量都没有,而他们的字节大小为1。字节1是为了代表该对象存在。

3.this指针

(1)Date类中有init与print两个成员函数,函数体中没有关于不同对象的区分,那当d1调用init与print时,该函数如何判断应该访问哪个对象,c++给出this指针解决该类问题
(2)编译器编译后,类的每个成员函数后面形参的第一个为this指针。
(3)类的成员函数中访问成员变量,本质是通过this指针访问的。
(4)c++中规定不能传参过程中写this指针,但可以在函数内显示使用this指针。
this指针的示例

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值