土土地问一个语法问题

milkbread 2004-07-12 08:26:22
C++中创建一个对象,这个对象中除了成员变量,是不是还应包含成员函数?成员函数是在内存中是怎么保存的?保存成员函数的首地址?成员函数中创建的变量放哪里?是不是一个类每创建一个对象都在内存新建一份成员变量和成员函数?
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellwolf 2004-07-12
  • 打赏
  • 举报
回复
用this 指针调用,这里就有一部分开销
riitso 2004-07-12
  • 打赏
  • 举报
回复
成员函数保存在代码区,编译器已经把他变的“面目全非”,加了很多前缀,后缀。对象调用它的时候,this做为参数“秘密”地传入,局部变量当然是在栈里创建的;
虚函数例外,对象中有vptr;
inline函数例外,编译期展开,没有实体;
changeme 2004-07-12
  • 打赏
  • 举报
回复
this
milkbread 2004-07-12
  • 打赏
  • 举报
回复
谢谢各位!还有一点不是很明白:对同一个类的不同的对象而言成员函数只有一份,那这个成员函数是怎么存储的?是存它的函数首地址在全局数据区?每当一个对象调用它时把它里面的局部变量再在栈中创建?
elvahuang 2004-07-12
  • 打赏
  • 举报
回复
C++中创建一个对象,这个对象中除了成员变量,是不是还应包含成员函数?
对象中只包含类非静态成员数据
成员函数是在内存中是怎么保存的?
作为全局函数来实现
成员函数中创建的变量放哪里?
执行是防在堆栈中的
是不是一个类每创建一个对象都在内存新建一份成员变量和成员函数
只有非静态的成员变量
nickshen 2004-07-12
  • 打赏
  • 举报
回复
nonstatic的类成员变量在每一个类对象中有一份,static的成员变量只有一份,成员函数当然是只有一份,属于编译器的实现部分
leonchew 2004-07-12
  • 打赏
  • 举报
回复
同意 楼上的。成员函数是属于类,成员变量是每个对象都有一份!
BluntBlade 2004-07-12
  • 打赏
  • 举报
回复
非模板类的成员函数对于整个类来说只有一份的。

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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