【C的结构体与C++的不同】 以及 【C++ 的类的和结构体区别】
2017-01-13 19:55
288 查看
C与C++中结构体的比较
C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而****C++中的结构体可以加入成员函数。在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体不能包含函数。在面向对象的程序设计中,对象具有状态(属性)和行为,状态保存在成员变量中,行为通过成员方法(函数)来实现。C语言中的结构体只能描述一个对象的状态,不能描述一个对象的行为。在C++中,考虑到C语言到C++语言过渡的连续性,对结构体进行了扩展,C++的结构体可以包含函数,这样,C++的结构体也具有类的功能,与class不同的是,结构体struct包含的函数默认为public,而不是private。
C++中的结构体和类的异同:
一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C**++中的结构体和类体现了数据结构和算法的结合**。
C++对象内存分布:
http://blog.csdn.net/gexiao/article/details/51377354?locationNum=12&fps=1
相关文章推荐
- C++学习之旅——结构体和联合体的区别,以及数据对齐方式影响内存大小
- C++学习之旅——结构体和联合体的区别,以及数据对齐方式影响内存大小
- 结构体的定义、访问以及C与C++中结构体的区别
- C++学习之旅——结构体和联合体的区别,以及数据对齐方式影响内存大小
- 【C/C++】结构体和联合体的区别,以及枚举类型的用法
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- C++ VS C#(11):结构体和对象的细微区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- c/C++编译的程序占用的内存以及More Effective C++ 条款1:指针与引用的区别
- C++ 匿名namespace的作用以及它与static的区别
- 类中的静态变量以及类与结构体的区别
- c++ 结构体和类的区别
- 微软笔试总结之C++中char * 和 char []的区别,以及堆、栈
- C++中结构体和类的区别
- Android管理联系人(包含添加,查询,修改和删除;以及不同版本区别)
- [转载]c/c++中结构体引用中箭头->与点.的区别
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- C,与C++的static的几大用法以及区别。
- 不同的编译器:GCC G++ C C++的区别