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 <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; }
輸出:
Wang Wang
作者:csdn博客 Spike_King