拷贝控制成员和构造函数实例
Posted summer-8918
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拷贝控制成员和构造函数实例相关的知识,希望对你有一定的参考价值。
理解拷贝控制成员和构造函数的一个好方法是定义一个简单的类,为该类定义这些成员,每个成员都打印出自己的名字。
拷贝初始化通常使用拷贝构造函数来完成。
#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; }
输出结果
以上是关于拷贝控制成员和构造函数实例的主要内容,如果未能解决你的问题,请参考以下文章