社区
C++ 语言
帖子详情
结构体与类有什么区别?
barry301
2006-08-29 10:00:47
求教:
结构体与类有什么区别?小弟刚学c++,请赐教!先谢了!
...全文
3497
37
打赏
收藏
结构体与类有什么区别?
求教: 结构体与类有什么区别?小弟刚学c++,请赐教!先谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuhx
2006-10-29
打赏
举报
回复
C++中的struct在一般情况下,和c中的struct的内存布局是一样的
包括默认构造函数之类的,如果用不着,编译器不会给你生成的
justrun2005
2006-10-29
打赏
举报
回复
还有,c++中的struct内存布局尽量保留c风格。
OOPhaisky
2006-10-29
打赏
举报
回复
支持一楼的说法
alecshanhao
2006-10-29
打赏
举报
回复
哈哈
whatsblog
2006-10-28
打赏
举报
回复
mark
晨星
2006-09-11
打赏
举报
回复
于是甘草爽了,做编译器的苦了。
变量传递,异常抛出,模板实例化……总之各种情况下都得对struct和class区分对待。。
究竟怎么使用struct,是不是以完全兼容C的方式使用,应该完全是程序员自己的权利,自己的选择,何必一律定死呢?当一件事已经“可以”,何必再去“强制”呢?
这就像法律的制定,法律完全“允许”人们在国土上最大限度的自由行动,但却不会“强制”你每天都必须在各个省份之间蹿来蹿去,停一刻便要杀头。。。^0^
healer_kx
2006-09-11
打赏
举报
回复
建议把struct搞成C的struct,
不要让它们基本相等了。
Virtualsoft
2006-09-11
打赏
举报
回复
同意楼上滴
lotomer
2006-09-11
打赏
举报
回复
c++中的class和struct的唯一区别只在默认成员访问权限不同(包括默认继承权限)
class默认private,struct默认public;
daocaoren0
2006-09-11
打赏
举报
回复
楼上的,你是用什么编译的啊?
你能运行该程序?
majcos
2006-09-11
打赏
举报
回复
>在C++中只有两点区别:
>(1)class中默认的成员访问权限是private的,而struct中则是public的。
>(2)从class继承默认是private继承,而从struct继承默认是public继承。
>除此这外无任何区别。
>
>当然C中的struct跟C++中的struct的区别就大了去了。。。
从class继承默认是private继承,而从struct继承默认是public继承。
这句话似乎不妥,看如下代码:
class T1
{
public:
void f()
{
cout<<"T1::f()"<<endl;
}
int x,y;
};
struct T2
{
int x;
void f(){cout<<"T2::f()"<<endl;}
};
struct TT1 : T1
{
};
class TT2 : T2
{
};
int main()
{
TT1 t1;
TT2 t2;
t1.f();
t2.f();
}
晨星
2006-09-11
打赏
举报
回复
哦,可能想的不是很对头。
编译器已经有能力区分POD和非POD的,不管是struct还是class,都可以是POD类型。
不过嘛,既便将struct都统一视为与的POD class等同,结果搞得struct里有个string字段都不行,感觉还是挺变态的。。。。
xsm
2006-09-02
打赏
举报
回复
在C#里面的区别是,结构不能声明一个无参数的构造器,也不能对字段进行初始化。并且,他不能被继承,声明了一个结构,它就是终点(结构是通常是独立存在的,但它是继承自OBJECT基类的)。而类正好与这些相反。
perfervid
2006-09-02
打赏
举报
回复
http://www.coderlife.cn/
wxc2006
2006-09-02
打赏
举报
回复
牛, 真牛, 第一天学C++就应该在书上看到答案的这么一个问题, 引来这么多人激动的回帖.
sinkileu
2006-09-02
打赏
举报
回复
C++中它们的唯一区别就是默认为private还是public了.
我啃
2006-09-02
打赏
举报
回复
恩!好贴,结了我做FAQ
晨星
2006-08-31
打赏
举报
回复
都可以,只有C语言的结构体中才不可以定义成员函数。当然,C语言的结构体中不可以有的东西还多着呢。
菠萝丝炒鸡蛋
2006-08-31
打赏
举报
回复
好像是结构体中不能定义成员函数,类可以,^_^ ,我是采鸟,刚刚学习~~
晨星
2006-08-30
打赏
举报
回复
算我说错了好了,并非“没有意义”,只是,实在写不下了。
加载更多回复(17)
C++中
结构体
与
类
的
区别
介绍
在参与以C++为编程基础的项目应用中总会遇到
结构体
类
型与
类
的数据
类
型,但是其具体应用
区别
模糊不清 现将其
区别
总结如下,欢迎补充共同学习(先介绍C和C++中
结构体
的不同,再对比C++中
结构体
与
类
的
区别
) 一、C和C++中
结构体
的不同 (1)C语言中的
结构体
不能为空,否则会报错 C语言中要求一个结构或联合至少有一个成员。C语言中,空
结构体
的大小为0,而C++中空
结构体
(属于空
类
)的大小为1 ...
【C++】
类
与
结构体
的
区别
我们知道C++中的 struct 对C中的 struct 进行了扩充,它不再是只能用来封装不同
类
型数据的数据结构了,而是拥有了更多的功能,例如:**可以包含成员函数,可以继承,可以实现多态!!**,这些功能与C++中的
类
很相似。 那么接下来我们解剖一下C++中
结构体
struct与
类
class的
区别
。 **struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体!**
C#中
结构体
与
类
的
区别
结构是一种关键字struct声明的自定义数据
类
型。与
类
相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套
类
型等。不过,结构是值
类
型,
类
是引用
类
型。
结构体
和
类
的
区别
1、值
类
型与引用
类
型
结构体
是值
类
型:值
类
型在栈上分配地址,所有的基
类
型都是结构
类
型,例如:int 对应System.int32结构,通过使用结构可以创建更多的值
类
型。
类
是引用
类
型:引用
类
型在堆上分...
类
与
结构体
的
区别
结构体
是值
类
型,
类
是引用
类
型
结构体
成员不能从其他
类
或
结构体
继承,
类
可以(注意,所有的值
类
型都默认从ValueType
类
继承,ValueType
类
再从Object
类
继承。所以
结构体
对象仍然拥有超
类
Object的成员)。
结构体
成员不能在声明时赋值初始值,
类
可以(实际上,C#
类
成员初始化代码会被编译器放到构造函数中的最前边部分执行,而C++中根本没有这种方式,只能声明成员) 不能为
结构体
提供无参构...
C#中
类
与
结构体
的
区别
、
结构体
与枚举的
区别
详解
特性
类
(Class)
结构体
(Struct)枚举(Enum)
类
型引用
类
型值
类
型值
类
型内存分配堆栈栈继承支持不支持不支持适用场景复杂对象、需多态轻量数据、高性能需求有限状态、可读性优先选型原则优先用
类
实现业务逻辑主体。对小型数据(<16字节)且高频实例化的场景(如游戏开发),选择
结构体
。需明确语义的常量集合(如状态码),使用枚举替代魔数(Magic Number)
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章