C++ 类和对象(7) 对象数组

本文介绍了在C++中如何创建和初始化Stock类的对象数组,强调了默认构造函数的作用,以及this指针在访问类成员时的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        和Stock一样,用户通常要创建同一个类的多个对象。可以创建独立对象变量,就像本章前面的示例所做的,但是创建对象数组将更合适。其实声明对象的方法与声明标准类型数组相同:

Stock mysuff[4];

        当程序创建未被显式初始化的类对象时,总是调用默认构造函数。上述声明要求,这个类要么没有显式地定义如何构造函数(在此情况下,将使用不执行任何操作1的隐式默认构造函数),要么定义了一个显式默认构造函数。每个元素都是Stock对象,可以使用Stock方法:

const int STKS = 4;
Stock stocks[STKS]=
{
    Stock("NanoSmart",12.5,50),
    Stock("Boffo Object",200,2.0),
    Stock("Monolithic Obelisks",130,3.25),
    Stock("Fleep Enterprises",60,6.5)
};

      标准格式对数组进行初始化

        代码使用标准格式对数组进行初始化:用括号括起的,以逗号分隔的值列表。其中,每次构造函数调用表示一个值。如果类包含多个构造函数,则可以对不同的元素进行不同的构造函数:

const int STKS = 10;
Stock stock[STKS] = 
{
    Stock{"NanoSmart",12.5,20},
    Stock(),
    Stock("Monolithic Obelisks",130,3.25)
};

        上述代码使用Stock(const string &co,long n,double pr)初始化stock[0]和stock[2],使用构造函数Stock()初始化stock[1]。由于该声明只初始化了数组的部分元素,因此余下的7个元素将使用默认构造函数进行初始化。

        初始化对象数组的方案是,首先使用默认构造函数创建数组元素然后花括号中的括号函数将创建临时对象然后将临时对象的内容复制到相对应的元素中因此,要创建类对象数组,则这个类必须有默认构造函数。

        知道this指针可以更加深入的了解C++的工作方式。

例如:C++方法定义:

void Stock::show() const
{
    cout<<"Company: "<<company
    <<"Shares:"<<shares<<'\n'
    <<"Share Price:$"<<share_val
    <<"Total Worth:$"<<total_val<<'\n';
}

C风格定义:

void show(const Stock * this)
{
    cout<<"Company: "<<this->company
    <<"Shares:"<<this->shares<<'\n'
    <<"Share Price:$"<<this->share_val
    <<"Total Worth:$"<<this->total_val<<'\n';
}

Stock::限定符转换成函数参数(指向Stock的指针),然后用这个指针来访问类成员。

同样,该前段将下面的函数调用:

top.show();

转化为:

show(&top);

这样将调用对象的地址赋给了this指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃三文鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值