C++ - 默认生成的成员函数

2014-11-24 11:51:15 · 作者: · 浏览: 0

默认生成的成员函数

本文地址: http://blog.csdn.net/caroline_wendy

C++默认生成4个成员函数.

默认构造函数(default constructor), 析构函数(destructor), 复制构造函数(copy constructor), 赋值函数(assignment);

其中析构函数, 会自动析构C++的基本类型数据.

"=default"表示添加默认, 可以用于重载; "=delete"表示删除, 即不使用默认;

以下代码主要展示, 复制构造函数赋值函数的生成情况.

代码:

/*
 * test.cpp
 *
 *  Created on: 2014.04.14
 *      Author: Spike
 */

/*eclipse cdt, gcc 4.8.1*/

#include 
  
   
#include 
   
     using namespace std; class Foo { public: Foo(std::string _name) : m_name(_name) {}; void say() { std::cout << m_name << std::endl;} Foo(const Foo&) = default; //delete表示删除, default表示使用默认 Foo& operator=(const Foo&) = default; ~Foo() = default; private: std::string m_name; }; int main() { Foo F1("Wang"); Foo F2(F1); Foo F3 = F2; F2.say(); F3.say(); return 0; } 
   
  

输出:

Wang
Wang


\