CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于类和对象的困惑

楼主cattleknife(解牛刀)2006-03-04 03:03:18 在 C/C++ / C++ 语言 提问

如果把类比成做蛋糕的模子,把对象比成从这个模子做出来蛋糕的,用new关键字出来蛋糕是分配在堆里,用声明变量的办法出来的蛋糕会是在栈里,那么系统是怎么知道有这个模子,这个模子是在什么时候加载的,又会在什么时候消失,存放在什么地方啊  
   
  没办法,菜人的分少问题不少,希望有人扫肓啊 问题点数:20、回复次数:7Top

1 楼jobs002(Oh! Office)回复于 2006-03-04 08:12:45 得分 5

类在c语言中相当于是结构体,实际上就是复杂数据的组合,你说得系统什么时候加载,什么时候  
  消失,类既然是模子,系统当人们声明对象的时候会给它分配空间,包括各个成员的初始化,具体的程序是如何运行的,具体系统知道的栈,堆,都是内存,需要处理器进行运行,可以看看汇编语言Top

2 楼jobs002(Oh! Office)回复于 2006-03-04 08:16:26 得分 1

附:  
  c语言的结构体和c++的类还是有区别的,主要就是c++的类进行了抽象,所以可重用性提高了很多,所以c的结构和c++的类还是有很大区别的(数据隐藏就不说了.....,得分难,给分,谢谢)Top

3 楼njSeeWhy(北海鲲鹏)回复于 2006-03-04 10:09:23 得分 1

当你new一个对象或者定义一个变量时,就要告诉编译器它是什么类型,这不就有模子了吗?干嘛还要装载呀什么的?Top

4 楼houdy(致力于图像/图形领域,成为有思想的程序员)回复于 2006-03-04 14:38:15 得分 2

其实我觉得,由于C++是一种强类型高级计算机寓言,所以在语法上需要明确确定类型,也就是在编译阶段(Compile),类型显得非常重要,如果类型不对,编译器就会报错。但是到了运行时(Run-time)类型已经显得不太重要的。在创建对象的过程中,我们只需要知道对象占多少内存空间,和一个被叫做"构造函数"的函数用来初始化新创建的对象。这就是"动态创建(Dynamic   Creation)"的概念,即通过一个字符串(类名)就可以创建相应的对象。具体的实例可以参见MFC中的CRuntimeClass类。Top

5 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 21:35:53 得分 1

那么系统是怎么知道有这个模子,这个模子是在什么时候加载的,又会在什么时候消失,存放在什么地方啊  
  ~~~~~~~~~~~~~~··  
  编译器在编译的时候身成这个末子,这个末子在连接器连接的时候加载(并且确保只加载一个),存放地方,有连接器确定。Top

6 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2006-03-04 21:39:43 得分 10

看看编译出的汇编代码有助于理解这个问题  
   
  实际上类与对象的区分只是在程序设计层次上  
   
  生成可执行的应用程序时,   已经没有了类和对象的概念了,   看看汇编代码,   都是一些Call   Jmp之类的操作,   看不到什么类啊对象的.Top

7 楼bohlee(我心澎湃)回复于 2006-03-07 00:47:52 得分 0

markTop

相关问题

  • 返回对象的困惑.
  • 类的困惑
  • 困惑:vb如何面向对象?
  • Delphi面向对象机制的困惑
  • 临时对象问题,困惑
  • JDBC类之困惑
  • VC继承类的困惑!
  • 类型转换的困惑
  • 关于 HDC 类的困惑
  • 关于 CDC 类的困惑

关键词

  • c++
  • 编译器
  • 系统
  • 结构
  • 模子
  • 对象
  • 类
  • 加载
  • 类型
  • 蛋糕

得分解答快速导航

  • 帖主:cattleknife
  • jobs002
  • jobs002
  • njSeeWhy
  • houdy
  • ugg
  • xiaocai0001

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo