您的位置:首页 > 编程语言 > C语言/C++

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

2014-04-15 09:17 471 查看

默认生成的成员函数

 

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

 

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




 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息