微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以实例化一个类,然后使用 new 为其分配一个不同的类吗例如 class1 name = new class2

如何解决您可以实例化一个类,然后使用 new 为其分配一个不同的类吗例如 class1 name = new class2

在教程的 2:48 中,我在 youtube(link)上观看了有关“->”运算符的 C++ 教程。他写了代码

int main()
{ScopedPtr entity = new Entity();}

根据我对实例化类的理解,new 关键字后面的类应该与您正在实例化的类相同。请解释它是如何工作的以及它为什么工作。

仅供参考:我是编码初学者,我没有指南书或任何我目前正在从名为 Cherno 的 youtube 频道学习 C++ 的东西,每当我不明白某事时,我就在互联网上搜索并进入网站

解决方法

是的,例如,当您创建指向类的实现的指针时,可能会发生这种情况,其中 ScopedPtr 是指向 Entity 的实现的指针。

你可以有一些文档 herehere

#include <iostream>

class Entity
{
public:
    Entity(){}
    //only for test
    void print()
    {
        std::cout << " print";
    }
};

class ScopedPtr
{
public:
    ScopedPtr(Entity* d) { implem = d;}
    ~ScopedPtr(){ delete implem;}

    //only for test
    void print()
    {
        implem->print();
    }
private:
    Entity* implem;
};

int main()
{
    ScopedPtr entity = new Entity();
    entity.print();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。