C++里类和结构有什么区别呀?

kevin_gao 2000-12-12 01:10:00
今天面试,碰到这么个问题! 我说结构不可以定义方法,他说你回去试试吧! 到底可以吗?我也懒得试了,而且想搞清楚它们到底有些什么区别!
呵呵,俺是菜鸟,俺怕谁!
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kz 2000-12-12
  • 打赏
  • 举报
回复
结构也可以定义方法
不过我想说的是
class myc{
int in;
float fl;
};
struct mys{
int in;
float fl;
};
MyClass mc;
MyStruct ms;
int c=sizeof(mc);
int s=sizeof(ms);
运行后c=s+4个字节,你用VC试试就知道了
原因:对于类(其实是浪废)多了一个虚函数指针,当上级类中有虚函数定义时,如果本类定义了这个虚函数,则执行
Up* u;Child* c=new Child();
u=c;
u.fun();//fun为u中定义的虚函数
第三行执行的是c定义的虚函数,运行时如何知道这一点呢,就是通过上面的指针现查到的
总之:struct更节约内存,但不能定义虚函数了
molight 2000-12-12
  • 打赏
  • 举报
回复
其实在C++中,类和结构没有什么大的区别,也可以定义方法,只是在类中,默认的是private,而在结构中默认的是public.
sun2000 2000-12-12
  • 打赏
  • 举报
回复
lhxx说的好象都有问题
结构和类在C++中有好多相似之处,
同样可以有方法(在C中的结构就不行),同样都是数据类型,
所说的不同也许是指C中的结构与C++中的类相比吧,
其实这并没太多的可比性。
Arthur_Ma 2000-12-12
  • 打赏
  • 举报
回复
简单的说,结构是数据的集合,类是数据及对数据的操作方法的集合。
HaoGeGe 2000-12-12
  • 打赏
  • 举报
回复
菜鸟,还这样嚣张,
关于结构和类的区别,侯哥的书中讲了.
随风bj 2000-12-12
  • 打赏
  • 举报
回复
如果你所说的结构就是用struct定义的一些数据结构,你所说的方法就是函数的话,那么你说的是对的。
在C++中,结构可以理解为要用的数据类型,只不过是为了适应在程序中的需要
而类就是一个能实现某些功能的一个集合(不十分准确),它包含了要实现这些功能的一些函数和数据以及所用的数据结构。类中可以定义结构,也可以定义函数,但结构中只能是数据!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧