class - 结构成员名称是否比我使用继承的类成员使用更多内存?

标签 class memory struct rust

我正在尝试在 Rust 中实现基于类的格式,它没有类或继承等面向对象的概念。

考虑以下示例:

class Creature {
  int id;
  bool alive
};

class Human: public Creature {
  int salary;
};

class Dog: public Creature {
  bool has_fur;
};

如果我想在 Rust 中实现相同的结构,我会这样做:

struct Human {
    id: i32,
    alive: bool,
    salary: i32,
}

struct Dog {
    id: i32,
    alive: bool,
    has_fur: bool,
}

与用 C++ 编写并从基类(或者可能在 JavaScript 中使用原型(prototype))继承的情况相比,重复的结构是否会使应用程序需要更多的内存?该应用程序将拥有数百万个对象。

我猜代码中会有很多重复的成员名称,这本身可能就是一个问题。但是你将如何翻译 Rust 中的数据结构(尽可能减少内存影响)?或者这是要走的路?

最佳答案

不。

类型信息在运行时不保存,因此 struct s 可以自由创建。

关于class - 结构成员名称是否比我使用继承的类成员使用更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59720734/

相关文章:

memory - 限制可用内存的工具

for-loop - 从 3 个单独的 slice (每个结构属性一个 slice )创建新的组合结构 slice 时索引超出范围

class - PlantUML:如何控制同等级类的对齐?

python - 将文件传递给类

Python内存泄漏?

Calloc分配不一致

c++ - 为什么 const 结构数组在按名称引用 const 结构时不放在 .rodata 中?

c# - Linq 查询从对象数组中获取数据 C#

javascript - jQuery 选择器 - 选中并且类开始于

python - 如何在 C++ 中创建可迭代的对象列表?