C++:默认生成的成员函数
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