C代码:
// C语言代码
struct TestClass
{
int m_a;
int m_b;
};
int TestClass_Sum(TestClass* self)
{
return self->m_a + self->m_b;
}
int main()
{
TestClass testClassObj;
testClassObj.m_a = 5;
testClassObj.m_b = 6;
int result = TestClass_Sum(&testClassObj);
return 0;
}
C++的类将功能封装到类中形成类的成员函数。
物以类聚,代码也是如此,数据结构与其操作的函数封装到一起,并提供访问控制,形成类类型。同时,可以通过类之间的关系不同,如继承和抽象类的形式来进一步群聚(grouping)类。
//C++代码(也会编译成类似左边的代码)
class TestClass
{
public:
int m_a;
int m_b;
int Sum();
};
int TestClass::Sum() // 隐藏了一个指向对象数据区的一个this指针
{
return m_a+m_b;
}
int main()
{
TestClass testClassObj;
testClassObj.m_a = 5;
testClassObj.m_b = 6;
int result = testClassObj.Sum();
return 0;
}
C++的类只是代码组织的一种方式而已,当然,相应的,也成了一种编程思维。当然,类作为一种封装方式,也提供了一种类作用域和命名空间,有了更高的安全性。类的继承让代码有了多一种的代码重用方式,特别是在需要向上转型的场合,类的多态让代码更易扩展。以类和对象作为程序的基础构件也增大了代码的颗粒度。同时,由此也让代码的设计模式和框架成为可能。
C语言函数以结构体为参数来操作结构体。
C++类的成员函数也隐藏了一个指向类数据成员的this指针。
最终的汇编代码总是殊途同归。

最后的汇编代码几乎一致:

-End-

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/3093.html
如若转载,请注明出处:https://www.vsaren.com/3093.html