编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,
language-agnostic heap stack memory-management dynamic-memory-allocation
此常见问题解答涉及聚合和POD,并涵盖以下材料:
struct
默认情况下是公共的,默认情况下class
是私有的.
让我们以Ogre3D为例; 如果我class
用struct 更改所有出现,它会编译(我猜),并且引擎就像以前一样工作.
如果我是对的,编译后的代码与之前完全相同,因为只有编译器会检查是否调用了私有/受保护的方法,而不是在运行时检查它.
如果我仍然是对的,class
只是一个关键词,只是让它可爱的眼睛和乞求"请封装你的数据:你将保存一只小猫",而私人/受保护的范围仍然取决于用户.
我知道我听起来有点蹩脚或无关紧要的反叛(类似"C是KISS老兄,不要去")
回到问题:标准对于生成机器代码struct
与class
生成机器代码之间的这种微小差异有何看法?为什么要添加一个关键字,并试图用所谓的"OO模型"给程序员留下深刻印象,而它完全没有强制执行呢?它受到了java的影响吗?