结构体和类的区别,c结构体和类的区别类比结构体更先进那还要结构体干嘛呢
来源:整理 编辑:智能门户 2023-08-18 11:56:20
本文目录一览
1,c结构体和类的区别类比结构体更先进那还要结构体干嘛呢
C++中的结构体与类的区别主要在于数据的隐藏性,在结构体中所有的数据都是可以被访问的,而类中有的却不能够访问,这是最主要的区别,像继承、多态什么的就是类的特性了,还有就是C中的结构体不可以有函数,而C++中的结构体却可以有不能为结构体添加无参够造方法而类可以结构体是值类型累世引用类型在使用时结构体不需要初始化而类需要初始化http://wenwen.sogou.com/z/q829439839.htm?an=0&si=1成员默认的访问权限和继承方式不同,还有结构体不能有析构函数再看看别人怎么说的。c++的结构和类没有区别。结构里也可以定义成员函数。但所有成员默认是public的。保留结构的原因是为了前向兼容一些老的代码。比如有人用c写成的代码,在c++里依然能够被成功编译。
2,C中 结构体和类的区别
C++中的结构体和类的异同:一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,(而struct中没有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),类的关键字class能作为template模板的关键字 即template class A实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
3,结构体和类有什么区别
结构体和类的区别 1.C的结构体和C++结构体的区别 1.1 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。 1.2 C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。 1.3 C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。 以上都是表面的区别,实际区别就是面向过程和面向对象编程思路的区别: C的结构体只是把数据变量给包裹起来了,并不涉及算法。 而C++是把数据变量及对这些数据变量的相关算法给封装起来,并且给对这些数据和类不同的访问权限。 C语言中是没有类的概念的,但是C语言可以通过结构体内创建函数指针实现面向对象思想。2.C++的结构体和C++类的区别 2.1 C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。 2.2 C++结构体的继承默认是public,而c++类的继承默认是private。
4,C结构体和类的区别浅析
栈(stack)又名堆栈结构面向过程,类面向对象,结构能做到的,类都能做到,只有类能够封装,继承和多态。结构体和类的区别:类的声明和结构的声明非常类似,只是限定符(修饰符)后面是 struct 还是 class 的区别。结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型。类是引用类型:引用类型在堆上分配地址 堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用。【从定义上区分】 1)结构体是structure为关键字起手的定义,而类是class。 2)结构体的默认构造函数是无参的构造函数,但是如果你为一个结构体定义了带参的构造函数,你绝对不能再重复去写一遍那个无参的空构造函数;类相反——定义了一个带参的构造函数,绝对要再重复定义一次空构造函数,否则你无法调用空构造函数。 【从使用角度区分】 1)struct结构体是“复合类型”,其功能等同与基本的int,double的用法,尽管struct也可以写方法,但是不赞成这样做。因为struct的引入是为了解决“多类型”的问题(比如一个学生记录包含id,name等不同基本类型的组合,单个int,string无法满足,所以才出现了struct)。类是组成面向对象编程的基础,功能远远大于结构。 2)struct因为默认继承system.valuetype(可以这样理解),因此说,一个结构赋值给另外一个结构的时候,相当于做了拷贝复制功能(两者完全没有联系,假设a=b,那么b和a各自改变互不影响);但是class的话a=b,a和b共同引用同一个单元,a或者b有一方改变就影响了另外一方。本质上class是封装的指针而已。
5,c语言中结构体和类的区别
6. .NET中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能声明有默认的构造函数,因为结构的副本是编译器创建和销毁的,所以不需要默 认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是引用类型,改变其变量的值会改变其原值。声明结构用 Struck关键字,申明类用class关键字,向方法传递结构时是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类可以实现接口。【从定义上区分】1)结构体是structure为关键字起手的定义,而类是class。2)结构体的默认构造函数是无参的构造函数,但是如果你为一个结构体定义了带参的构造函数,你绝对不能再重复去写一遍那个无参的空构造函数;类相反——定义了一个带参的构造函数,绝对要再重复定义一次空构造函数,否则你无法调用空构造函数。 【从使用角度区分】1)Struct结构体是“复合类型”,其功能等同与基本的int,double的用法,尽管struct也可以写方法,但是不赞成这样做。因为struct的引入是为了解决“多类型”的问题(比如一个学生记录包含id,name等不同基本类型的组合,单个int,string无法满足,所以才出现了struct)。类是组成面向对象编程的基础,功能远远大于结构。2)Struct因为默认继承System.ValueType(可以这样理解),因此说,一个结构赋值给另外一个结构的时候,相当于做了拷贝复制功能(两者完全没有联系,假设A=B,那么B和A各自改变互不影响);但是class的话A=B,A和B共同引用同一个单元,A或者B有一方改变就影响了另外一方。本质上class是封装的指针而已。楼上说的很详细 结构和类有什么区别呢. 结构和类一样 都同等于一个自定义类 但是结构是值类型 如果你在结构中有一个int a 你写上一句int b = a的话 他们的值会是一样 但是不管你怎样改变其中的一个 另外一个也不受影响 因为这是值类型(基本数据类型) b只是a的值的副本 如果是类的话 int b = a 他们的值也会是一样 但是你只要改变了其中一个 另外一个也会改变 因为类是引用类型 b和a都指向同一个值的地址 而并不是a的一个副本 在使用中 类的功能比结构要大很多 构造函数的话 和类差不多 如果不写构造函数: 他们都默认会有一个无参的构造函数 但是如果带了有参的构造函数 : 类的话可以在重新写一个无参的 否则就不能使用无参构造函数创建实例 结构的话不需要在写无参的构造函数 至于怎么区分结构还是类 这很简单 结构在定义的时候 前面要加struct 而类在定义的时候前面要加class
6,C语言的结构体与C的类的辨析 希望大家能给个总体上的描述在
c语言是面向结构也就是面向过程,java是纯面向对象,c++是即可面向过程编程也可面向对象编程;这里说的面向过程和面向对象是一种编程思想,具体说就是: 面向结构,是把要实现的功能分成很多模块即函数,每个模块承担某一功能,每个模块可能会多次利用,这样就只需调用函数就行,不用重新定义,节省了代码和时间。 面向对象,是我们把要实现的功能打包封装定义成一个类即一个对象,一个对象他既有多个属性也有多个行为,用类作为程序设计的单元,要实现这个类的功能还得把类实现,就是用类定义对象,就像面向结构里的函数定义后,你还得调用函数才能用函数的功能,类可以实现很多功能及对象的行为,也就是可以包含很多函数模块和变量,类与类直接可以通信也就是属性的传递就就是变量值的传递,这就比面向结构更加抽象,抽象级别更高。 而楼主所说的C语言的结构体,他是来定义数据块的,其实他只相当与面向对象的对象的属性,具有多种类型的变量,而没有对象的行为方式。类成员默认是私有的,而结构体默认是共有的,其他一样。class CTest int nNum; //privatepublic: int nCount;};typedef struct CTest int nNum; //publicprivate: int nCount;};c的结构体对比c++的类只是定义了对象的属性,而缺少了行为。另外c++的类的很多特性c的结构体是不具备的,比如多态,继承。c结构体c是面向过程的编程语言。在c语言中,结构体是用作一种数据聚合方式,将一组关联紧密的数据组成统一的数据进行操作。其功能是最基本的,在c++结构体和c++类中同样包含该功能。c++结构体c++是面向对象的编程语言。结构体的表现形式,使用方法与c语言的结构体一致。区别:1. c++结构体是面向对象的,可以在其中定义函数。2. c++的结构体存在访问权限(默认public)。可以通过private方法修饰内部成员变量是否可以被修改。3. c++类c++类是面向对象封装的基础,功能和c++结构体类似,同样可以定义函数。区别:1. c++类的默认访问权限是private。c 和 c++中 struct 的主要区别是 c 中的 struct 不可以含有成员函数,而 c++中的 struct可以。c++中struct和 class 的主要区别在于默认的存取权限不同,struct 默认为 public,而class 默认为private。好烂的编码风格。。。 C语言下竟然使用驼峰命名法。。而且思路太混乱了。。简直没法看了! 建议调整下 编码风格 并写出问题。。 什么问题说一下
文章TAG:
结构体和类的区别 c结构体和类的区别类比结构体更先进那还要结构体干嘛呢
大家都在看
-
手机会自动停止充电吗,手机充电会自动检测电池是否充满电?
2022-12-19
-
win7自动密码锁屏软件哪个好,win7锁屏功能设置好了
2022-12-21
-
空调不会自动制冷,空调否制冷是什么原因 解决方法
2022-12-21
-
三星锁屏自动开启,手机解锁后直接开启相机可以尝试如下
2022-12-22
-
自动跟随婴儿车,武汉机器人如何进行自动跟随服务
2022-12-28
-
手机批量自动截图,手机怎么用智能截图搞定
2023-01-06
-
自动扫二维码秒抢红包,扫码抢红包!还有这些好玩的!
2023-01-25
-
amabrush自动牙刷,这些牙刷是否适合你使用?
2023-02-02
-
苹果6时间自动设置原理,如何进行日期和时间设置?
2023-02-09
-
科技文献中智能怎么翻译,有哪个翻译高手知道智能科技的英译及缩写先谢了
2023-02-15
-
华为p6老是自动重启,手机自动重启不能用手机可以这样做
2023-03-02
-
征安智能科技怎么样了,intel的智能响应技术到底怎么样
2023-03-07
-
iphonex刘海自动黑屏,iphone刘海怎么隐藏?
2023-03-08
-
自动开关手机,华为emui3.0系统支持自动开关机器
2023-03-15
-
智能饮水机怎么接水,饮水机线怎么接
2023-03-16