C&C++ 结构体,类 区别
2015-12-06 21:08
246 查看
C中的结构体和C++中结构体的不同之处:
在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。
C++中的结构体和类的异同:
一、相同之处:
结构体中可以包含函数;
也可以定义public、private、protected数据成员;
定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;
也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
二、不同之处:
结构体定义中 默认情况下的成员是public,而类定义中的默认情况下的成员是private的。
类中的非static成员函数有this指针,(而struct中没 有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),
类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。
C++中的结构体和类的异同:
一、相同之处:
结构体中可以包含函数;
也可以定义public、private、protected数据成员;
定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;
也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
二、不同之处:
结构体定义中 默认情况下的成员是public,而类定义中的默认情况下的成员是private的。
类中的非static成员函数有this指针,(而struct中没 有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),
类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
相关文章推荐
- C++类与对象基础
- LeetCode Reverse Bits 的C++解决4ms
- hdu 1350 Taxi Cab Scheme(二分匹配)
- C-054.学习OC之前,需要掌握和理解的C语言的基础部分基本写完了
- C语言知识整理(1):简介
- c++_2: 类的定义
- 理解C语言——从小菜到大神的晋级之路(2)——开发环境的选择和HelloWorld程序
- C++采用AD0方式连接MSSQL时程序崩溃(win7运行正常,XP崩溃)
- 黑马程序员——C语言——基础语法
- c语言之指针
- 【C语言提高29】两个辅助指针变量挖字符串
- 旋转字符串的判断——KMP实现 (C++)
- VS C++执行DOS命令
- C/C++经典面试题(持续更新)
- Java & C++ 数组声明和使用语法对比
- c++_1: 基础问题
- PY++ 自动将你的C++程序接口封装供python调用
- 《C++ primer plus》:类的自动转换和强制类型转换
- C/C++检测进程是否被调试
- POJ3295——Tautology