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

来源:互联网 发布:无人机协同优化 编辑:程序博客网 时间:2024/05/18 03:20

----------------------------- 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 declaredexplicitare 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 itexplicit. I encourage you to follow the same policy.


Effective C++ programmers do their best to steer clear ofundefined behavior

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

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





原创粉丝点击