类可以用作指针吗

Can a class be used as a pointer?

本文关键字:指针      更新时间:2023-10-16

在我的一项作业中,我被要求用c++创建一个包含灯泡的灯,并且可以随意切换灯泡。CLamp里面有一瞬间的CBulb。这是实验室解决方案的一部分:

在CLamp类中:

CLamp::CLamp(const CLamp& oldLamp)
{
    bptr  = new CBulb;
    *bptr = *(oldLamp.bptr);
}

和:

CBulb *CLamp::ExchangeBulb(CBulb *theNewBulb)
{
    CBulb *tmp = bptr;
    bptr = theNewBulb;
    return tmp;
}

主要是:

CLamp lamp1(*some number*);
CBulb *testbptr = new CBulb(*some other number*);
CBulb *temp = lamp1.ExchangeBulb(testbptr);
delete temp;

那么CBulb *CLamp::ExchangeBulb(CBulb *theNewBulb)是什么意思呢?ExchangeBulb是什么的成员函数?这也意味着*ClampCBulb类型的对象吗?提前谢谢你的时间。

您有一个类CLamp和一个类CBulb

那么"CBulb*CLamp::ExchangeBulb(CBulb*新灯泡("是什么意思呢?

它定义了CLamp的一个名为ExchangeBulb的成员函数,该函数获取指向CBulb的指针并返回指向CBulb 的指针

ExchangeBulb是什么的成员函数?

CCD_ 11是CCD_。它使用指向CBulb的指针作为自变量。

这也意味着*Clamp是CBulb类型的对象吗?

不,不是。

我建议你读一本好的C++书

CBulb *CLamp::ExchangeBulb(CBulb *theNewBulb)

ExchangeBulbCLamp的一个成员函数。它返回一个指向CBulb类的指针,并将指向CBulb的指针作为自变量。

ExchangeBulb是CLamp类中的一个方法,其目的是获取新灯泡并替换旧灯泡。当你调用CBulb*temp=lamp1.ExchangeBulb(testbptr(时,你在做什么;是您试图用新创建的灯泡(其他编号(替换灯泡(某个编号(。

ExchangeBulb是CLamp的成员。原因很明显,因为只有Lamp可以更换灯泡。CBulb*表示您正在返回一个CBulb指针。

ExchangeBulb是CLamp的一个函数。它更换灯泡并返回旧灯泡。

这也意味着*Clamp是CBulb类型的对象吗?

不,不是。