struct
默认为公开,class
默认为私有。每次我使用struct而不是class时,我会杀死一只小猫吗?
让我们以Ogre3D为例;如果我用struct更改所有class
事件,它会编译(我猜),引擎和以前一样工作。
如果我是正确的,编译后的代码是完全和以前一样,因为它,它不是在运行时检查是唯一,它检查是否有私人/受保护的方法被称为编译器。
如果我还是对的,class
只是一个关键字,只是让其可爱的眼睛和乞讨“请封装你的数据:你可以节省一只小猫”,而私人/保护的范围仍然上涨给用户。
我知道我听起来有点跛或反叛毫无来由(类似“C是KISS的家伙,不要去”
回到问题:什么是标准说一下struct
和class
,而这之间的差别不大生成机器码?为什么添加关键字和尝试,而这是完全没有,那么执行呢?是不是由Java的影响?
实际上恰恰相反。每当你使用“结构”就足够的'class'关键字时,你就会杀死一只小猫。不,自从C++首次发布以来,并没有受到Java的影响。 – 2011-01-24 17:28:57
C++不是一种严格的OO语言,它是一种多范式语言,不仅支持面向对象的操作,因此它不试图对开发者实施面向对象的概念。如果他们愿意的话,开发者可以使用OO风格。请参阅C++标记的信息条目http://stackoverflow.com/tags/c%2b%2b/info – Glen 2011-01-24 17:28:59
有更多的答案在这个问题在http://stackoverflow.com/questions/4090794/c-when-should -i-use-structs-instead-of-class-and-where-the-the-speed-differe。 – 2011-01-24 17:30:05