首页 > 其他分享 >拷贝构造

拷贝构造

时间:2024-03-26 22:33:56浏览次数:19  
标签:Monster int hp float 构造 拷贝 speed name

#include <iostream>
using namespace std;
class Monster
{
public:
    Monster();
    Monster(char * name,int hp,float speed);
    ~Monster();
    Monster(Monster &obj);
    Monster(Monster &obj1, int val);

public:
    string m_name;
    int m_hp;
    float m_speed;
};
Monster::Monster()
{
    m_name="name";
    m_hp=100;
    m_speed=10.0f;
    cout << "无参构造" << endl;
};
Monster::Monster(char * name,int hp,float speed)
{
    m_name=name;
    m_hp=hp;
    m_speed=speed;
    cout << "带参构造" << endl;
};
Monster::~Monster()
{
    cout << "析构函数" << endl;
}
// 拷贝构造
Monster::Monster(Monster &obj)
{
    m_name = obj.m_name;
    m_hp = obj.m_hp;
    m_speed = obj.m_speed;
    cout << "拷贝构造1" << endl;
};
Monster::Monster(Monster &obj, int val){
    m_name = obj.m_name;
    m_hp =val;
    m_speed = obj.m_speed;
    cout << "拷贝构造2" << endl;
};
void test_func_2(Monster monster){}

Monster test_func_1(){
    Monster l1;
    l1.m_hp=20;
    l1.m_speed=10.0f;
    return l1;
}
int main()
{
    
    Monster m0;
    m0=test_func_1();
    //test_func_2(m0);
    //Monster m1("皮卡丘", 10,1.0f);
    //test_func_1(m0);
    //Monster m3 = m0; //同类对象初始化
    //Monster m3(m0); // 使用一个对象构造另一个对象
    //  Monster *p = new Monster;
    //  delete p;
    //  p=nullptr;
}

  

标签:Monster,int,hp,float,构造,拷贝,speed,name
From: https://www.cnblogs.com/gishuanhuan/p/18097787

相关文章

  • 复制(拷贝)数组的方法
    1.Arrays类的copyOf()方法2.Arrays类的copyOfRange()方法3.System类的arraycopy()方法4.Object类的clone()方法(1)copyOf()方法是以指定的长度复制原数组,然后返回一个新数组,如果长度超过原数组,会以数组类型的默认值进行填充(2)copyOfRange()方法则将指定原数组的指定长度范......
  • 根据后序(前序)和中序构造二叉树(力扣105,106)
    文章目录题目前知怎样通过中序和前(后)序构造二叉树HashMap题解一、思路二、解题方法三、Code总结题目Problem:105.从前序与中序遍历序列构造二叉树Problem:106.从中序与后序遍历序列构造二叉树中后:给定两个整数数组inorder和postorder,其中inorder......
  • 【05每天十分钟,javase基础全搞定-构造方法】
    构造方法格式:[修饰符]类名(形参列表){}构造方法也叫构造器,用于对象的初始化。构造器的名称应与它所在的类的名称一致构造方法的返回值跟普通方法有区别,普通方法的那种返回值,构造方法没有,也不能用void修饰符构造方法通过new关键字调用!构造方法的返回值类型是这个类本身。(......
  • C++类的构造函数和析构函数
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1.构造函数(Constructor)2.析构函数(Destructor):3.构造函数与析构函数的调用顺序:4.注意事项:5.示例总结1.构造函数(Constructor)**定义:**构造函数是一种特殊的成员函数,用于在创建对象时初始化......
  • 利用卷影拷贝服务攻击域控五大绝招
    在微软ActiveDirectory(活动目录)中,所有的数据都被保存在ntds.dit中,NTDS.DIT是一个二进制文件,它存在于域控制器中的%SystemRoot%\ntds\NTDS.DIT。ntds.dit包括但不限于Username、Hash、Group、GPP、OU等活动目录相关信息。它和SAM文件一样,是被Windows系统锁定的,我们来介绍一下如......
  • C++开发基础——类对象与构造析构
    一、基础概念类:用户自定义的数据类型。对象:类类型的变量,类的实例。类的成员:成员变量和成员函数。成员变量:类中定义的变量。成员函数:类中定义的函数。定义类的代码样例:classClassName{//members};//类定义的右花括号后面必须有分号类的访问修饰符:public、private......
  • leetcode106从中序与后序遍历序列构造二叉树
    目录1.解题关键2.思路3.变量名缩写与英文单词对应关系4.算法思路图解5.代码本文针对原链接题解的比较晦涩的地方重新进行说明解释原题解链接:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/solutions/50561/tu-jie-gou-z......
  • Go语言进阶:深入理解深拷贝与浅拷贝
    Go语言进阶:深入理解深拷贝与浅拷贝原创 lipeilun 海天二路搬砖工 2024-03-1719:01 福建 听全文一、引言在Go语言的编程实践中,内存管理和数据复制是经常遇到的问题。特别是在处理复杂数据结构或自定义类型时,如何正确、高效地复制数据变得尤为重要。深拷贝与浅拷贝是......
  • Python实战:深拷贝与浅拷贝
    1.引言在Python中,对象是通过对内存中的数据进行引用来实现的。当我们创建一个对象并将其赋值给另一个变量时,实际上是将这个对象的引用复制给了另一个变量。这意味着,如果原始对象发生改变,引用该对象的变量也会受到影响。为了解决这个问题,Python提供了深拷贝和浅拷贝两种方......
  • 一文弄懂Javascript中的深拷贝和浅拷贝
    目录一文弄懂Javascript深拷贝与浅拷贝1Javascript数据存储规则2浅拷贝3部分深拷贝3.1Object.assign3.2slice()3.3concat()3.4拓展运算符4完全深拷贝4.1_.cloneDeep()4.2结构化拷贝4.3json.stringify()4.4循环递归4.5jQuery.extend()5总结一文弄懂J......