Effective C++读书笔记(1)-Introduction

本文深入探讨了C++编程中的一些关键概念,如声明与定义的区别、初始化过程、构造函数的作用及如何正确使用显式关键字避免意外类型转换。通过具体代码示例展示了如何规避一些常见陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------------------------- Scott Meyers*Third Edition------------------------------------    


If you follow all the guidelines all the time, you are unlikely to fall into the most common traps surrounding C++, but guidelines, by their very nature, have exceptions. That's why each Item has an explanation. The explanations are the most important part of the book. Only by understanding the rationale behind an Item can you reasonably determine whether it applies to the software you are developing and to the unique constraints under which you toil.


A declaration tells compilers about the name and type of an object, function, class, or template, but it omits certain details. 


A definition, on the other hand, provides compilers with the details. For an object, the definition is where compilers allocate memory for the object. For a function or a function template, the definition provides the code body. For a class or a class template, the definition lists the members of the class ortemplate.


   extern int x;//object declaration

   int x;//object definition


Initializationis the process of giving an object its first value. For objects of user-defined types, initialization is 

performed by constructors. A default constructor is one that can be called without any arguments. 

Such a constructor either has no parameters or has a default value for every parameter.


Constructors declared explicitare usually preferable to non-explicit ones, because they prevent compilers from 

performing unexpected (often unintended) type conversions. Unless I have a good reason for allowing a constructor 

to be used for implicit type conversions, I declare it explicit. I encourage you to follow the same policy.


Effective C++ programmers do their best to steer clear of undefined behavior

int *p=0;//p is a null pointer

std:cout<<*p;//dereferencing a null pointer





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值