类与对象


一、C++中的类

C++中的类,将数据和操纵数据的方法组合成一个整洁的包。

类规范包括两个部分组成:

类声明:以数据成员方式描述数据部分,以成员函数(方法)的方式描述公有接口。

类方法定义:描述如何实现类成员函数

通常,程序员将接口(类定义)放在头文件中,并将实现放在源代码中。

内联函数

定义位于类声明中的函数都将自动成为内联函数、

也可以在类声明之外定义成员函数,并使之成为内联函数。

为此,只需在类实现部分中定义函数时使用inline限定符即可。

#include<iostram>
using namespace std;
class Stock
{
    private:
        void set_tot();
    
}
iniline void Stock::set_tot()
{
    
}

内存分配

每个对象都有自己的存储空间,用于存储其内部的变量和类成员;

但同一个类的所有对象共享同一类方法,即类方法只有一个副本。

构造函数

每次创建类对象(甚至使用new动态分贝内存)时,C++都使用类构造函数。

如:Stock *pstock=new Stock("Furry",20);

这条语句创建一个Stock类对象,将其初始化为参数提供的值,并将该对象地址赋值给pstock指针

这种情况下,对象没有名称,但可以用指针来管理对象。

析构函数

用构造函数创建对象后,程序负责跟踪该对象,直到其过期为止。

对象过期时,程序将自动调用析构函数。

何时释放析构函数?

如果创建的是静态存储对象,其析构函数将在程序结束时被自动调用

如果创建的是自动存储类对象,则其析构函数将在程序执行完代码块时自动被调用。

如果对象是通过New创建的,则他将驻留在栈内存或自用存储区中,直到使用delete释放

this指针

每个成员函数(包括构造和析构)都有一个this指针。this指针指向调用对象。

如果方法要引用整个调用对象,可以使用表达式*this。

在函数的括号后面使用const限定符将this限定为const,这样将不能使用this来修改对象的值。

对象数组

对象数组的声明方法与标准类型的声明方法相同。

Stock mystff[4];

当程序创建未被显式初始化的类对象时,总是调用默认构造函数。

可以用构造函数来初始化数组,在这种情况下,必须为每个元素调用构造函数。

如果类包含多个构造函数,则可以对不同的元素使用不同的构造函数。

初始化对象数组的方案是:

首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时对象,

然后将临时对象的内容复制到相应的元素中。

因此,要创建类对象数组,则这个类必须有默认构造函数。

类作用域

在类中定义的名称(数据成员名和类成员函数名)的作用域都为整个类,只在该类中是已知,类外不可知。

抽象数据类型

运算符重载限制

1.重载后的运算符必须至少有一个操作数是用户定义的类型,防止用户为标准类型重载运算符。

2.使用运算符时不能违反运算符原来的句法规则。

3.不能创建新运算符。

4.不能重载下面的运算符

(sizeof),( . ),(.*),(?:),(typeid),(const_cast),(dyanmic_csast),(reinterpret_cast),(staci_cast)

5.大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载。

=:赋值运算符

():函数调用元素安抚

[]:下标运算符

->:通过指针访问类成员的运算符

优质内容筛选与推荐>>
1、unity, polygon collider 2D 添加顶点
2、【漏洞公告】CVE-2017-8543:Windows Search远程代码执行漏洞
3、C#反射实例(转)
4、quartz在集群环境下的最终解决方案
5、10款CSS3按钮 - 再也不用为按钮设计而发愁了


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号