如何创建一个类

如何创建一个类

类。是一些列对象特征的抽象。
C++编程上,类具有的组件包括:成员变量、成员对象、构造函数、析构函数、成员函数、拷贝函数。
在程序中根据实际含义定义完成上述组件。就完成了一个类的构建。
类各组件的关系是:成员变量对应的是类涉及的各种数据。成员对象是其它类的在这个类中的实例,用于引用其它类的数据或功能。

成员变量和成员对象

例如:int age,char name,double money等的定义。
成员例如代码示意中的haha类定义的h对象。

构造函数

构造函数的功能主要用于创建一个对象。不写重载构造函数的时候,系统会自动生成默认构造函数,使用默认构造函数生成的对象会自动调用析构函数。但是如果写了重载构造函数,如果希望使用默认构造函数生成对象,就需要显式地写出默认构造函数的形式。重载构造函数的特征在于参数列表不同,重载构造函数可以有多个。
需要注意默认构造函数和重载构造函数的问题,尤其涉及含有成员对象的时候。可能需要对成员对象使用指针。
生成对象的主要几个方法是:
Lei L1 //默认生成构造函数
Lei L2() //和Lei L1没区别也是生成默认构造函数
Lei L3 = Lei(参数列表) //重载构造函数
Lei *L4 = new Lei() //堆区生成默认构造函数
Lei *L5 = new Lei //(参数列表)堆区生成重载构造函数
Lei *L6 = new Lei[x] //生成默认构造函数
注意使用new关键字是在堆区生成的对象,需要使用指针。

成员函数

返回值可以为空void、int、&引用(需要使用This指针)
成员函数默认为inline内联函数。
可以在类内定义成员函数,也可以类定伪定义成员函数,然后类外定义该成员函数,这样写的好处是对比不经常使用的成员函数影响编译效率。对于经常使用的成员函数建议为 inline内联函数。

析构函数

主要用于删除一个对象。一般析构函数会自动生成。需要注意使用new关键字定义的对象,需要对应使用delete关键字删除该对象。因为new关键字产生的对象存储于堆取,占用内存,不使用之后需要删除。例如:
delete L4
delete L5
delete []L6
需要注意删除对象数组的写法。

复制拷贝函数

一般系统默认生成。
写法如示例中的。
haha(haha &hh):hello(hh.hello)

类名(类名 &xx):类参数(xx.类参数),类参数(xx.类参数){}
进行复制的方法是:
例如
haha h1
haha h2 = h1
就完成了复制对象过程。

类名 xx = 已有的该类的对象名

示例简介

本文图示的示例为一个完成的类创建过程的代码和输出结果。
主类为Lei类,Lei定义了一个haha类的对象最为自己的成员对象。
对于定义这个对象,示例中使用的new关键字的方式定义的h对象。如果是普通默认构造函数的方式,后续主函数调用各个重载构造函数会提示找不到初始化的问题,即找不到h这个对象,很由于其在栈区经过多次重载引发了初始化的问题。更深入的机理,还需要深入的学习。
haha *h = new haha()
然后主程序一次通过多种方式包括默认构造函数各种重载构造函数生成Lei的对象以及对象数组,并进行了new关键字生成对象的删除。
代码和运行结果如下图示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值