技术标签: C++
例子1:该程序容易崩掉,因为容器在放元素的时候,进行的是拷贝操作,而不是将元素直接放进容器中。
如果涉及指针元素,当进行拷贝操作之后,则两个类的数据的指针指向同一个地方
当程序结束的时候,类中的数据被析构掉后,容器又将拷贝来的数据析构掉,因为指针的相同,所以该指针的数据将被析构两次!所以程序崩掉
解决方法:在类中添加 拷贝构造函数
class Person{
public:
char* pName; //指针,容易出现浅拷贝问题
int mAge;
public:
Person(char* name,int age){
//this->pName = name;
this->pName = new char[strlen(name)+1];
strcpy(this->pName,name);
this->mAge = age;
}
~Person(){
if(this->pName != NULL){
delete[] this->pName;
}
}
};
例子2: 在以上程序的基础上添加了拷贝构造函数
class Person{
public:
char* pName; //指针,容易出现浅拷贝问题
int mAge;
public:
Person(char* name,int age){
//this->pName = name;
this->pName = new char[strlen(name)+1];
strcpy(this->pName,name);
this->mAge = age;
}
Person(const Person& p){ //拷贝构造函数
this->pName = new char[strlen(p.pName)+1];
strcpy(this->pName,p.pName);
this->mAge = p.mAge;
}
Person& operator=(const Person& p){
if(this->pName!=NULL){
delete[] this->pName;
}
this->pName = new char[strlen(p.pName)+1];
strcpy(this->pName,p.pName);
this->mAge = p.mAge;
return *this;
}
~Person(){
if(this->pName != NULL){
delete[] this->pName;
}
}
};
void test01(){
Person p("abc",1);
vector<Person> vPerson;
vPerson.push_back(p);
}
int main(){
test01();
return 0;
}
转:https://blog.csdn.net/herokoking/article/details/78257714没找到原文地址,上面的博主也是转的别人的,但是没有标出原文出处htseq-count 是一款用于reads计数的软件,他能对位于基因组上的一些单位的reads数进行统计,这里所说的单位主要是指染色体上的一组位置区间(我们常见的就是gene exon)。*教程基于0.6.1p2版本基...
ArrayList 源码分析扩容问题及序列化问题ArrayList 源码分析扩容问题及序列化问题一、前言二、ArrayList 的继承与实现关系2.1 ArrayList.java2.2 抽象类AbstractList.java2.3 接口List.java2.4 接口RandomAccess.java2.5 接口Cloneable2.6 接口Serializable...
指针数组是一种特殊的数组,指针数组的数组元素都是指针变量。指针数组的定义格式为:类型名称 *数组名称[数组长度];例如:float *pf[3];因为下标运算符[]的优先级高于指针运算符*,上述定义等价于:float * (pf[3]);说明pf是一个含有3个元素的数组,数组元素为指向float型变量的指针变量。又如: int *pn[5]; /*定义一个5个元素的指针数组
从大学到研究生,也算是从事GIS行业7年了,这是这7年来积累的全国POI兴趣点数据,数据量还是挺大的,有从事GIS行业的同学可以一起交流讨论。数据只是用来做学习使用,如果涉及到侵权或数据安全,为了避免权属纠纷,请及时联系本人!...
1.创建runstats所需的表和包等[email protected]> @[email protected]> exec runStats_pkg.rs_start;PL/SQL procedure successfully completed.2.创建测试用表:sy[email protected]> conn sec_test/[email protected]> create table t1
前1个月接触tf,是一个老师组了队做互联网+比赛, 深度学习的机器视觉。用tf框架python实现,在学习中,把自己的一些心得体会分享出来。欢迎大家指正。神经网路搭建八股,正向传播,反向传播,梯度下降减小误差。训练参数,用来预测是否合格。#coding:utf-8 2 #0导入模块,生成模拟数据集 3 import tensorflow as tf 4 import numpy as ...
public class LinkedList { public ListNode head; public ListNode current; class ListNode{ int val; //数据域 ListNode next = null; //指针域 public ListNode(int val) { this.val =val;...
java 获取指定日期的下月的第一天时多少:如传入20210323,则返回20210401,如传入20211221,则返回20220101public static String getFirstDayofNextMonth(String datestr, string format){ SimpleDateFormat sdf = new SimpleDateFormat(format); try { Date date = sdf.parse (datestr); Calendar ca
进程组 每一个进程在创建的时候就有自己的进程ID,同时也有自己的ID(PGID)。一个进程组,可以含有一个或者多个进程,进程组也有自己的ID,通常是进程组里面第一个进程的ID。 进程组的特点:每一个进程组有一个组长进程,进程组长的ID等于进程组ID进程组长可以创建进程组、创建进程组里面的进程只要进程组里面含有进程,那么进程组就存在,这与进程组长的存在没有关系进程组里面的最后一个进程...
<rich-text nodes="{{demo}}"></rich-text>// demo为html标签
Windows 7 and Vista include a nice set of backgrounds, but unfortunately most of them aren’t configurable by default. Thanks to a free app and some registry changes, however, you can make the default...
DLL "C:/WINNTG/Microsoft.NET/Framework/v2.0.50727/aspnet_perf.dll" 中服务 "ASP.NET" 的打开过程出现故障。 该服务的性能数据将不可使用。返回的状态码 是数据 DWORD 0。服务器.netframework asp.net2.0每三分钟报错|perflib1008。服务器上每三分钟都会报错:source Perflib