您如何创建一个可以在c ++中将自身保存为变量的类?

evanr70

我对C ++还是相当陌生,我的大部分写作都是使用Python。

在Python中,如果我想创建一个类来保存有关人类的信息,则可以编写一个类,该类可以将其“父”作为其变量之一。在Python中,我会大致这样做:

class Human:

    def __init__(self, name):
        self.name = name


first = Human("first")
second = Human("second")

second.parent = first

在哪里second.parent = first说人的父母second是人first

在c ++中,我尝试实现类似的内容:

class Human {

    public:
        Human parent;

};

int main() {
    Human first = Human();
    Human second = Human();

    second.parent = first;
}

该示例带有一个错误field has incomplete type: Human我明白了,因为这是因为我尚无法在人类对象中拥有人类,因为还没有关于人类是什么的完整定义。当我搜索相关帖子时,我会不断使用前向声明和指针提出解决方案,但是我无法使其正常运行。

我真的很感激任何使c ++示例表现出我希望的行为的帮助。

谢谢。

一些程序员哥们

例如,通过使用指针:

struct Human
{
    Human* parent;  // The symbol Human is declared, it's okay to use pointers to incomplete structures
};

int main()
{
    Human first = Human();
    Human second = Human();

    second.parent = &first;  // The & operator is the address-of operator, &first returns a pointer to first
}

您也可以使用引用,但是使用它们和初始化它们可能会有些困难。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Swift 3中将自定义类保存为CoreData实体的属性?

如何在 environment.prod.ts 中将模式保存为 ENV 变量?

如何在Logstash中将数据库版本保存为sql_last_version变量

Django未在另一个模型中将自定义用户保存为外键:NOT NULL约束失败

从txt文件读取变量并将其保存为数组C ++到类对象中

如何在C#中将<script>保存为文本

如何在 R 中将 huxtable 保存为 png 文件

如何在Swift中将结构保存为JSON文件

如何在 Electron 中将 ImageData 保存为 PNG

如何在laravel中将INT字段保存为null

如何在streamlit中将DataFrame保存为csv?

如何在streamlit中将DataFrame保存为csv?

如何在Tensorflow中将张量绘制并保存为图像

如何在R中将flextable保存为png

如何在R中将highchart保存为PNG图像?

如何在 Python 中将抓取的数据保存为 JSON

如何使保存为类中的属性的列表可迭代?

如何将boxplot保存为变量?

如何将CSV文件保存为变量

如何在Laravel 5.5中将主键保存为FK到另一个表

是否可以将自定义大小的int数组保存为RealmObject的字段?

如何创建一个可以存储对象的类?

如何创建一个可以全局访问的变量-oracle

将XML保存为ctypes c_byte在变量中会导致TypeError:需要一个整数

创建一个Rails论坛,我将如何创建一个可以通过自身链接的子类别Crud

如何保存两个日期,一个保存为本地日期,另一个保存为UTC

如何将terragrunt的输出变量保存为常规shell环境变量?

Python如何将stdout的第一行保存为变量

如何在下一页将 html 用户输入保存为 javascript 变量?