码迷,mamicode.com
首页 > 其他好文 > 详细

拷贝控制成员和构造函数实例

时间:2019-01-09 13:44:47      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:参数   cto   简单   局部变量   程序   png   拷贝构造   定义   color   

理解拷贝控制成员和构造函数的一个好方法是定义一个简单的类,为该类定义这些成员,每个成员都打印出自己的名字。

拷贝初始化通常使用拷贝构造函数来完成。

#include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;

#include <iostream>
#include <vector>
#include <initializer_list>

struct X
{
    X() { std::cout << "构造函数X()" << std::endl; }
    X(const X&) { std::cout << "拷贝构造函数X(const X&)" << std::endl; }
    X& operator=(const X &rhs) { 
        std::cout << "拷贝赋值运算符=(const X&)" 
        << std::endl;
        return *this;
    }
    ~X() { std::cout << "析构函数~X()" << std::endl; }
};

void f1(X x)
{

}

void f2(X &x)
{

}
int main()
{
    cout << "局部变量:" << endl;
    X x;
    cout << endl;

    cout << "非引用参数传递:" << endl;
    f1(x);
    cout << endl;

    cout << "引用参数传递:" << endl;
    f2(x);
    cout << endl;

    cout << "动态分配" << endl;
    X *px = new X;
    cout << endl;

    cout << "添加到容器中:" << endl;
    vector<X> vx;
    vx.push_back(x);
    cout << endl;

    cout << "释放动态分配对象:" << endl;
    delete px;
    cout << endl;

    cout << "间接初始化和赋值:" << endl;
    X y = x;
    y = x;
    cout << endl;

    cout << "程序结束" << endl;
    return 0;
}

输出结果技术分享图片

 

拷贝控制成员和构造函数实例

标签:参数   cto   简单   局部变量   程序   png   拷贝构造   定义   color   

原文地址:https://www.cnblogs.com/Summer-8918/p/10243612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!