C++基础语法:复制构造函数,赋值构造函数及浅复制,深复制

前言

       "打牢基础,万事不愁" .C++的基础语法的学习

引入

        前一篇帖子C++基础语法:类构造函数之普通构造函数-优快云博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充.

        内容主要参考自<<C++ Prime Plus>> 6th Edition 第12章 类和动态内存分配

题外话

        先说说个人心得,这部分内容是C++学习首次接触时,开始觉得杂乱的地方,也可以说是第一个难点(当然后面还有多种继承方式,多重继承啊,模板啊,算法啊,也不容易).所以需要好好梳理他的来龙去脉. 类可以包络一切数据和逻辑,类写完了,程序差不多就完成了.所以构造类对象比较重要.

        再谈谈学习方法,纯记忆学习,很牢靠也很让人踏实.但有两个问题,一是记不记得了那么多,有的人记忆力没那么好.二是容易造成一个不爱思考的"舒适区",编程本身就是在表达逻辑,比使用逻辑要深一层.所以学习最好能建立逻辑链,以"现有知识"推导"未知",同时把"未知"变为"已知"

复制构造函数

       对象的生成方法,不止使用普通构造函数,还可以使用复制构造函数.他们在形式上有差别.普通构造函数,使用了非对象做参数;复制构造函数,使用已生成的对象做参数,生成新的对象.例如: 

#include<iostream>
using namespace std;
class Person {                                  //类声明
    string description;
    double money;
public:
    Person(const string& des, double mo) :description(des), money(mo) {}
    double getMoney() {
        return money;
    }
    string getDescription() {
        return description;
    }
};

int main(void) {
    Person Annie = Person("beautiful", 5000);   //普通构造函数生成对象安妮
    Person Julie(Annie);                        //复制构造函数生成对象朱丽,属性值和安妮相同
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值