c语言struct和c++的class的暧昧】的更多相关文章

c语言风格的封装 数据放在一起,以引用和指针的方式传给行为c++ 认为封装不彻底 1数据和行为分开 对外提供接口 2没有权限设置 看看struct的一个例子 //data.h //c语言风格的封装 数据放在一起,以引用和指针的方式传给行为 //c++ 认为封装不彻底 //1数据和行为分开 对外提供接口 //2没有权限设置 struct Date { int year; int month; int day; }; void init(Date &d); void print(Date &d…
1.C语言里的struct是不能包含成员函数的,只能有数据成员2.C语言struct定义变量只能用一下两种方式:struct { ... } x, y, z;struct point pt;直接point pt;是错误的定义:pt3 = { 3, 5 }; //错误pt2 = makePint(1, 1); //正确还可以用返回值为结构体类型的函数对以声明的结构体变量赋值:不能用初始值列表给已声明的struct变量赋值. 3返回值类型为结构体的函数: /* makepoint: make a p…
在实际问题中,一组数据往往具有不同的数据类型.例如, 在学生登记表中,姓名应为字符型:学号可为整型或字符型: 年龄应为整型:性别应为字符型:成绩可为整型或实型. 显然不能用一个数组来存放这一组数据. 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理.为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”. 它相当于其它高级语言中的记录. “结构”是一种构造类型,它是由若干“成员”组成的. 每一个成员可以是一个基本数据类型或者又是一个构造类型. 结构即是一种“构造”而成的数据类型…
大一整个学期完成了 C 语言的学习,大二就进入了Java 的学习. 和C语言一样,我们都会尝试写一个小小的学生管理系统什么的,学习过 C 语言同学知道,在管理系统中 Struct 结构体是个很好用的东西,使用它就避免了一些棘手的问题. 那么问题来了,在 Java 还有 Struct 结构体嘛? 答案没有的,不过 Java 中的 Class 对象体现的就是 Struct 结构体的思想.虽然 C 语言是一个面向过程化的语言,不过这个 Struct 结构体却面向对象的味道,而 Java 做为面向对象的…
1.定义 c语言中struct是用户自定义数据类型(UDT),是一些变量的集合体:c++中struct是抽象数据类型(ADT),能给用户提供接口,能定义成员函数,能继承,能实现多态 2.成员权限设置 c语言中,struct没有权限设置:c++中struct有权限设置,默认的成员权限是public,还可以通过设置private来隐藏成员 3.声明struct变量的方式 c语言中,声明一个struct变量需要在前面加struct:struct 结构体名 变量名 或者不加struct使用typedef…
C++中使用: struct test{    int x, y;};就可以定义一个名为 test的结构体,但C中很可能编译通不过.C语言并不支持在struct后使用标示符定义结构体的名字,test将会被忽略,这相当于定义了一个没有名 字的结构体.C里面 struct test 这才是一个结构体的名字,声明一个对象时,struct是不能漏的若定义一个该结构体对象test mt; 将会提示未定义的test错误信息.所以,在C语言中,一般使用typedef来定义结构体,上面的例子可以改为: type…
1        struct 的巨大作用 面对一个人的大型C/C++程序时,只看其对struct 的使用情况我们就可以对其编写者的编程经验进行评估.因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起.从某种程度上来说,会不会用struct,怎样用struct 是区别一个开发人员是否具备丰富开发经历的标志. 在网络协议.通信控制.嵌入式系统的C/C++编程中,我们经常要传送的不是简单的字节流(char型数组),而是多…
通过RTTI,能够通过基类的指针或引用来检索其所指对象的实际类型.c++通过下面两个操作符提供RTTI. (1)typeid:返回指针或引用所指对象的实际类型.    (2)dynamic_cast:将基类类型的指针或引用安全的转换为派生类型的指针或引用. 对于带虚函数的类,在运行时执行RTTI操作符,返回动态类型信息:对于其他类型,在编译时执行RTTI,返回静态类型信息. 当具有基类的指针或引用,但需要执行派生类操作时,需要动态的强制类型转换(dynamic_cast).这种机制的使用容易出错…
转自:http://www.cnblogs.com/silentjesse/archive/2013/07/30/3225212.html struct数据有3中初始化方法:顺序,C风格及C++风格的乱序. 1)顺序 这种方法很常见,在一般的介绍C的书中都有介绍.顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化:允许只初始化部分成员:在被初始化的成员之前,不能有未初始化的成员. eg: struct User oneUser = {10, "Lucy", "/ho…
转1个写的比较全面的. http://hubingforever.blog.163.com/blog/static/17104057920122256134681/ 本文编辑整理自:http://hi.baidu.com/pine515/blog/item/28f41f496042e8ee83025c4e.htmlhttp://blog.sina.com.cn/s/blog_4913c1f301000bip.html一. ANSI C标准中并没有规定,相邻声明的变量在内存中一定要相邻.,,.而且…