前言
"打牢基础,万事不愁" .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); //复制构造函数生成对象朱丽,属性值和安妮相同