一个类中什么都不写,系统自动调用的函数有哪些

guanbenben 2006-11-25 10:49:37
RT
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
索思索想 2006-11-26
  • 打赏
  • 举报
回复
按照 Inside the C++ Object Model 里的说法
只有编译器需要的时候,才会自动生成一个默认建构函数
morphymorphy 2006-11-26
  • 打赏
  • 举报
回复
漏写类名了...^0^
fflush 2006-11-26
  • 打赏
  • 举报
回复
编译器不是所有的时候都会为一个类提供默认的构造,析构,拷贝构造,赋值运算符,他只在需要的时候这么做,如果一个类里面什么都不写,这些也都不会提供,所以前面的人都说错了
morphymorphy 2006-11-26
  • 打赏
  • 举报
回复
C++中的空类,默认产生的类成员函数:

class
{
public:
Empty(); // 缺省构造函数
Empty(const Empty&); // 拷贝构造函数
~Empty(); // 析构函数
Empty& operator=(const Empty&); // 赋值运算符
Empty* operator&(); // 取值运算符
const Empty* operator&() const; // 取值运算符const
};
houdy 2006-11-26
  • 打赏
  • 举报
回复
给你办法,能够让你查看编译器到底帮你生成了那些函数:
1.使用VC建立一个Win32的DLL,导出一个类,注意里面什么也不要写。这样就就可以了:
class MyClass {
//nothing
};
2.成功编译连接后,使用depends.exe来查看刚生成的DLL,这样我们就知道编译器帮我们生成了那些函数。
如果我没有记错的话,编译器应该生成这样的函数:
1.默认构造函数
2.拷贝构造函数
3.opearator =
4.析构函数
todototry 2006-11-25
  • 打赏
  • 举报
回复
应该说系统提供了什么更合适
构造,析构,拷贝构造,赋值运算符
这四个系统提供的
个人意见,高手多多指教
n1m234 2006-11-25
  • 打赏
  • 举报
回复
差不多就那些了!!@好象默认只有析构和构造
guanbenben 2006-11-25
  • 打赏
  • 举报
回复
如构造函数,析构函数,还有什么啊
fflush 2006-11-25
  • 打赏
  • 举报
回复
1. 不是系统调用,类中的一些行为确切的说都是编译器放进去的,和系统无关
2. 如果什么都不写,那么,什么都不会调用

64,676

社区成员

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

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