

c++的良好习惯_爱写代码的小白程序员的技术博客_51CTO博客
source link: https://blog.51cto.com/u_15059356/5638219
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

c++的良好习惯
精选 原创对象的初始化
1.使用对象前需要确保对象已经初始化
初始化和赋值
{
};
class ABEntry
{
public:
ABEntry(std::string name, std::string address, std::list<PhoneNumber>& phone, int num);
private:
std::string mName;
std::string mAddress;
std::list<PhoneNumber> mPhones;
int mNumTimeConsulted;
};
// 赋值
ABEntry::ABEntry(std::string name, std::string address, std::list<PhoneNumber>& phone, int num)
{
mName = name;
mAddress = address;
mPhones = phone;
mNumTimeConsulted = num;
}
以上操作都是进行赋值操作,而不是初始化,这样能够带来你想要的成员变量的值,但是C++有更好的办法
初始化发生的阶段比较早,一般是在进入构造函数本地之前,所以更好的做法就是使用初始化模板
: mName(name),mAddress(address),mPhones(phone),mNumTimeConsulted(num)
{
}
这种做法的结果和上面的赋值操作是相同,但是相率更高,赋值操作需要调用进入构造函数本体里面进行操作,刚好初始化模板就避免了这个问题
2.构造析构和赋值
每一个所写的类都有一个或者多个默认构造函数,析构函数,copy assignment操作符
为了避免编译器为我们自动生成一些不是期待的相关函数,应该直接定义相关函数,拒绝编译器自动生成相关的函数
不要在构造函数和析构函数调用virtual相关的函数
{
public:
Transaction();
virtual void logTransaction() const = 0;
};
class BuyTransaction : public Transaction
{
public:
virtual void logTransaction() const;
};
class SellTransaction : public Transaction
{
public:
virtual void logTransaction() const;
};
Transaction::Transaction()
{
logTransaction();
}
BuyTransaction b; // 会发生什么?


- 1赞
- 收藏
- 评论
- 分享
- 举报
上一篇:c++ 之 const
Recommend
-
69
-
45
近日web开发专家Christian Maioli总结了导致程序猿效率低下,代码像意大利面条一样难以维护的35条恶习(归为代码组织、团队工作、写代码、测试与维护四大类)。
-
113
(点击上方蓝字,快速关注我们) 来源:techug www.techug.com/pos...
-
38
每到岁末,人们都会不约而同地、自发地写各式各样的总结。上个月,也就是 2018 年的最后一个月,园子里各处散落着无数篇年终总结贴。看过一些篇章,都写得挺好的。 转眼 2019 年已经运行了大半个月了,
-
38
程序员 - @labulaka521 - 刚入职不久,维护的心累,在别人的没有注释代码上加功能是真的难受怎么让大家对于比较复杂的逻辑习惯写上注释
-
6
2022-07-18 04:12 数据:约 4500 人参与 Otherside First Trip 技术演示,反馈良好 据 Cointelegraph 报道,7 月 16 日,大约 4500 人参与了 Yuga Labs 元宇宙项目 Otherside 的“First Trip”技术演示,且反馈良好。据悉,此次“Firs...
-
5
互联网大佬爱写书-鸟哥笔记 首页 >
-
10
C++浅拷贝深拷贝 精选 原创 1. C++ 浅拷贝什么是浅拷贝?...
-
6
V2EX › 问与答 小白如何开始养成锻炼的习惯 t202201
-
1
博客大数据分析:38880条博文揭示博主最爱写什么? 作者:J.sky · 发表于:18 小时前 · 更新于: · Tag: 中文博客...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK