作为一名学生,去年我与GCC 4.4.7合作编译C ++代码,如果没有在代码中明确定义,它将为我的类创建构造函数和析构函数。这是4.2.x版本中存在的功能吗?
在你问之前,是的,我已经用Google搜索并查看了gcc.gnu.org,但我的搜索结果都没有。
答案 0 :(得分:2)
如果没有用户生成的构造函数/析构函数,那么将为您提供一个构造函数/析构函数。
C ++ 11标准§12.1.4(构造函数)
类X的默认构造函数是类X的构造函数,可以在没有参数的情况下调用。如果 对于类X没有用户声明的构造函数,隐式声明了没有参数的构造函数 违约(8.4)。隐式声明的默认构造函数是其类的内联公共成员。
C ++ 11标准§12.4.4(析构函数)
如果一个类没有用户声明的析构函数,则析构函数被隐式声明为默认值(8.4)。一个含蓄的声明 析构函数是其类的内联公共成员。