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