当前位置:网站首页>vector和类拷贝构造函数
vector和类拷贝构造函数
2022-07-06 22:46:00 【novanova2009】
// vec_d.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <vector>
class test
{
public:
double *a;
test() { a = nullptr; };
test(int size) {
a = new double[size];
for (int i=0;i<size;i++)
{
a[i] = i;
}
};
};
class test1
{
public:
test1() {};
test1(double val) {
for (int i = 0; i < 10; i++)
{
a[i] = val;
}
};
private:
double a[10];
};
using namespace std;
int main()
{
vector<test1> vec_t;
test1 new_t(10.0);
vec_t.push_back(new_t);
}
vector添加元素的时候采用的是拷贝构造函数。编译器生成的是浅拷贝的拷贝构造函数。
test1这个类采用了固定长度的数组,浅拷贝没有问题。
test这个类采用了指针,实现动态长度数组。需要使用深拷贝构造函数。
默认的拷贝构造函数为什么能够正确处理test1这种类的拷贝?说明它的实现是直接把内存中的值复制了一遍。指针的值是动态数组的内存地址。所以,复制指针的值是不对的。
边栏推荐
- PLC模拟量输出 模拟量输出FB analog2NDA(三菱FX3U)
- AttributeError: module ‘torch._C‘ has no attribute ‘_cuda_setDevice‘
- Leetcode notes
- Flask project uses flask socketio exception: typeerror: function() argument 1 must be code, not str
- Flex layout and usage
- 基于Bevy游戏引擎和FPGA的双人游戏
- A row of code r shows the table of Cox regression model
- [736. LISP syntax parsing]
- What is JVM? What are the purposes of JVM tuning?
- Comparison between thread and runnable in creating threads
猜你喜欢
Field data acquisition and edge calculation scheme of CNC machine tools
【Android Kotlin协程】利用CoroutineContext实现网络请求失败后重试逻辑
A line of R code draws the population pyramid
U++4 接口 学习笔记
一文搞懂常见的网络I/O模型
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
Basic knowledge of road loss of 3GPP channel model
JS variable plus
LabVIEW在打开一个新的引用,提示内存已满
C语言中函数指针与指针函数
随机推荐
Markdown编辑器
PLC模拟量输出 模拟量输出FB analog2NDA(三菱FX3U)
[digital analog] source code of MATLAB allcycles() function (not available before 2021a)
JS also exports Excel
最全常用高数公式
【愚公系列】2022年7月 Go教学课程 005-变量
[736. LISP syntax parsing]
offer如何选择该考虑哪些因素
使用Thread类和Runnable接口实现多线程的区别
A simple and beautiful regression table is produced in one line of code~
JS variable case output user name
Monitoring cannot be started after Oracle modifies the computer name
关于01背包个人的一些理解
Thread和Runnable创建线程的方式对比
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
Pointer and array are input in function to realize reverse order output
Decorator basic learning 02
Why do many people misunderstand technical debt
C语言中函数指针与指针函数
Vscode automatically adds a semicolon and jumps to the next line