C和C++结构体的区别
C和C++结构体的区别
转自:https://www.cnblogs.com/qiumingcheng/p/7814970.html
1.C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。
2.C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。
3.C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。
4.在C中定义一个结构体类型要用typedef,如下:
typedefstructComplex{intread;intimage;
}Complex;
那么,在说明Complex变量的时候可以这样写
Complex complex;
但是如果没有typedef就必须用
structComplex complex;
来声明。这里的Complex实际上就是struct Complex的别名。另外这里也可以不写Complex(于是也不能struct Complex complex;了)
typedefstruct{intread;intimage;
}Complex;
但在c++里很简单,直接
structComplex{intread;intimage;
};
于是就定义了结构体类型Complex,声明变量时直接Complex complex;
在c++中如果用typedef的话,又会造成区别:
structComplex1{intread;intimage;
}complex;//complex是一个变量
typedefstructComplex2{intread;intimage;
}Complex2;//Complex是一个结构体类型
使用时可以直接访问complex.read,但是Complex2则必须先Complex2 complex2;然后complex2.read = 1;
C和C++结构体的区别相关推荐
- C#中类与结构体的区别
1.在C#中结构体类型定义时,成员是不能初始化的,这样就导致了,定义结构体变量时,变量的所有成员都要自己赋值初始化.但对于类,在定义类时,就可以初始化其中的成员变量,所以在定义对象时,对象本身就已经有 ...
- c语言结构共用体的作用,浅谈C语言共用体和与结构体的区别
共用体与结构体的区别 共用体: 使用union 关键字 共用体内存长度是内部最长的数据类型的长度. 共用体的地址和内部各成员变量的地址都是同一个地址 结构体大小: 结构体内部的成员,大小等于最后一个成 ...
- C++中类和结构体的区别
结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性 即:类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问 ...
- C#类与结构体的区别
C#中类(class)与结构体(stract)的区别: 1.类是引用类型,结构体是值类型: 2.结构体不支持继承,但可以实现接口,类即支持继承也能实现接口: 3.结构体中不可以声明无参的构造函数: 4 ...
- C++类和结构体的区别
经测试(编译环境为VC6.0),发现C++结构体与类只有一个区别,就是类默认的成员是private,结构体默认的成员是public. 结构体可以定义public.private.protected,可 ...
- [绍棠_Swift] Swift中类和结构体的区别
类和结构体有许多相同之处,也有许多不同之处. 二者区别如下: 1,类可以继承,结构体不可以 2,可以让一个类的实例来反初始化,释放存储空间,结构体做不到 3,类的对象是引用类型,而结构体是值类型.所以 ...
- 【C++】类与结构体的区别
C++中结构体(struct) 我们知道C++中的 struct 对C中的 struct 进行了扩充,它不再是只能用来封装不同类型数据的数据结构了,而是拥有了更多的功能,例如:可以包含成员函数,可以继 ...
- C里的共同体和结构体的区别
共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据 结构体变量所占内存长度是各 ...
- matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组
MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...
最新文章
- Sql Server:创建用户并指定该用户只能看指定的视图
- 如何使用pyecharts中自带的数据集?
- CS专业读PhD是否有意义?附CS奖学金项目清单
- python3 matlabplot 和numpy 简单绘图
- 把tomcat服务器配置为windows服务的方法
- CCPC Training Class
- 【渝粤题库】国家开放大学2021春2094法理学题目
- bzoj:2331: [SCOI2011]地板
- 常用数据手册(Datasheet)下载网站
- 如何清空c盘只剩系统_电脑C盘怎么清理到最干净?高手教你清理C盘的详细步骤...
- ele-calendar 组件的使用
- 在centos上安装pycharm
- CSS3简易表盘时钟
- 人民币大写数字 C++
- 微信小程序生成二维码的示例代码
- 【vue】mint-ui中navbar下划线不显示的问题
- 飞猪双11成绩单背后 藏了什么玄机
- sql compact 转mysql_如何将数据导入到 SQL Server Compact Edition 数据库中(三)
- PySpark 累加器使用及自定义累加器
- lightbox图片展示效果