Welcome

首页 / 软件开发 / C++ / C++:默认生成的成员函数

C++:默认生成的成员函数2014-11-16C++默认生成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 <iostream>#include <string>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;}
输出:

WangWang
作者:csdn博客 Spike_King