zl程序教程

您现在的位置是:首页 >  后端

当前栏目

关于C++中的赋值与拷贝

C++ 关于 拷贝 赋值
2023-09-27 14:28:01 时间
很久没有用C++了,今天看到一道关于赋值与拷贝的面试题,准备写几句代码验证下。 首先,讲下验证过后的结论: 1)显示调用拷贝构造函数,肯定会执行拷贝构造函数。

很久没有用C++了,今天看到一道关于赋值与拷贝的面试题,准备写几句代码验证下。

首先,讲下验证过后的结论:

1)显示调用拷贝构造函数,肯定会执行拷贝构造函数。如Cat c2(c1);

       2)在初使化时进行赋值,也会执行拷贝构造函数,如Cat c2=c1;

       3)其它时间进行赋值,执行operator=的实现函数。如Cat c1,c2; c1=c2;

代码如下所示:

 

#include iostream 

using namespace std;

class Cat{ 

public: 

 char name[20]; 

public: 

 Cat(){}

 Cat(char * s){ 

 if(s!=NULL)

 strcpy(name,s);

 cout "use constructor" endl;

 Cat(const Cat cat)

 if(cat.name!=NULL)

 strcpy(name,cat.name);

 cout "use copy constrctor" endl;

 Cat operator=(Cat cat)

 if(this == cat) 

 return *this; 

 strcpy(name,cat.name);

 cout "use operator =" endl;

 return *this;


【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(二) 朋友们好啊,今天终于更新了。我是柠檬叶子C,本章将继续讲解C++中的面向对象的知识点,本篇主要讲解默认成员函数中的构造函数、析构函数和拷贝构造函数。还是和以前一样,我们将由浅入深地去讲解,以 初学者 的角度去探索式地学习。会一步步地推进讲解,而不是直接把枯燥的知识点倒出来,应该会有不错的阅读体验。如果觉得不错,可以 一键三连 支持一下博主!你们的关注就是我更新的最大动力!Thanks ♪ (・ ・)ノ
【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(一) 朋友们好啊,今天终于更新了。我是柠檬叶子C,本章将继续讲解C++中的面向对象的知识点,本篇主要讲解默认成员函数中的构造函数、析构函数和拷贝构造函数。还是和以前一样,我们将由浅入深地去讲解,以 初学者 的角度去探索式地学习。会一步步地推进讲解,而不是直接把枯燥的知识点倒出来,应该会有不错的阅读体验。如果觉得不错,可以 一键三连 支持一下博主!你们的关注就是我更新的最大动力!Thanks ♪ (・ ・)ノ
【C++要笑着学】运算符重载 | 赋值重载 | 取地址重载 | const成员 朋友们好啊,今天终于更新了。我是柠檬叶子C,本章将开始讲解运算符重载。运算符重载的技能是学习实现 STL 内部底层的不可缺少的 利器 !所以本篇非常重要,下一篇会手把手实现一个Date类,可以进一步地实战体会运算符重载。
C++运算符重载(四)之赋值运算符重载 赋值运算符重载 c++编译器至少给一个类添加4个函数 1. 默认构造函数(无参,函数体为空) 2. 默认析构函数(无参,函数体为空) 3. 默认拷贝构造函数,对属性进行值拷贝 4. 赋值运算符 operator=, 对属性进行值拷贝 如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题
狂想盼盼 2009年毕业于南开大学,目前从事互联网行业,主要担任产品经理和技术经理的职位。