相关疑难解决方法(0)

堆栈和堆的内容和位置是什么?

编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,

  • 它们在哪里和它们(物理上在真实计算机的记忆中)?
  • 它们在多大程度上受操作系统或语言运行时控制?
  • 它们的范围是什么?
  • 是什么决定了它们的大小?
  • 是什么让一个更快?

language-agnostic heap stack memory-management dynamic-memory-allocation

7847
推荐指数
27
解决办法
145万
查看次数

什么是聚合和POD以及它们如何/为何特殊?

常见问题解答涉及聚合和POD,并涵盖以下材料:

  • 什么是聚合
  • 什么是POD(普通旧数据)?
  • 它们有什么关系?
  • 它们如何以及为何特别?
  • C++ 11有什么变化?

c++ aggregate standard-layout c++11 c++17

525
推荐指数
6
解决办法
13万
查看次数

每次我使用struct而不是class时,我会杀死一只小猫吗?

struct默认情况下是公共的,默认情况下class是私有的.

让我们以Ogre3D为例; 如果我class用struct 更改所有出现,它会编译(我猜),并且引擎就像以前一样工作.

如果我是对的,编译后的代码与之前完全相同,因为只有编译器会检查是否调用了私有/受保护的方法,而不是在运行时检查它.

如果我仍然是对的,class只是一个关键词,只是让它可爱的眼睛和乞求"请封装你的数据:你将保存一只小猫",而私人/受保护的范围仍然取决于用户.

我知道我听起来有点蹩脚或无关紧要的反叛(类似"C是KISS老兄,不要去")

回到问题:标准对于生成机器代码structclass生成机器代码之间的这种微小差异有何看法?为什么要添加一个关键字,并试图用所谓的"OO模型"给程序员留下深刻印象,而它完全没有强制执行呢?它受到了java的影响吗?

c++ struct class

7
推荐指数
2
解决办法
1456
查看次数