return values.
With regard to article 1st, Bill Wagner mentioned in the terms that "reference types impose a burden on the garbage collector" appears to be a correct judgment. However, due to the box/Unbox effect, in some cases, the value type has brought more burden to the garbage collector. For example, you can place some value types in a collection and then perform read/write operations on them frequently. If this happens, I think it is not a better way to "discard the structure and adopt
Item 19: regard class design as Type Design)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
In C ++, just like other object-oriented programming languages (Object-Oriented Programming Language), a new type is defined by defining a new class (class ). As a C ++ developer, you spend a lot of time increasing your type system. This means that you are not only a class designer, but alsoTypeDesigner
Item 45: Use member function templates (member function template) to accept "all compatible types" ("all compatible types ")
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Smart pointers(Smart pointer) is a objects that acts like a pointer but adds functionality not provided by the pointer. For example, item 13 describes how the standard auto_ptr and tr1: shared_ptr are used to automatically d
Item 13: use objects to manage resources
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Suppose we work with a library of simulated investments (such as stocks and bonds), and various investment forms are inherited from a root class (root class) Investment:
Class investment {...}; // root class of hierarchy// Investment Types
Let us further assume that this library provides us with the method of
Item 39: exercise caution when using private inheritance (private inheritance)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Item 32 discusses how C ++ regards public inheritance (Public inheritance) as an is-a relation. Given a hierarchy (inheritance system), one class student inherits from a class person public. To successfully call a function, students must be implicitly transformed to perso
Appendix A. BeyondValid C ++
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Valid C ++Covers the general guidelines that I think are most important to the current C ++ programmers, but if you are interested in improving your effectiveness in more aspects, I recommend that you study other C ++ books,More effective tive C ++AndValid STL.
More effective tive C ++Covers other programming guideline
Chapter 5. Implementation
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
To a large extent, you can provide appropriate definitions for your classes (and class templates (class templates) and your functions (and function templates (function templates )) providing appropriate declarations is a key part of the battle. As long as you get the correct results, the corresponding implementation is stra
Item 33: Avoid overwriting "the name obtained by inheritance"
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Shakespeare has a saying about the name. "What's in a name? "He asked," A rose by any other name wocould smell as sweet. "(in the second scene of" Romeo and Juliette ", Mr. Zhu shenghao translated:" The name is meaningless. We call it the Rose Flower. If we change the name, the fragrance
Item 26: variable definitions (variable definition) is postponed whenever possible)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
If you define a variable with a constructor (constructor) or destructor (destructor) type, when the control process reaches the variable definition, you will be subject to the construction cost, when the variable leaves the scope, you will be responsible for analyzin
Item 34: differentiate inheritance of Interface (interface inheritance) and inheritance of implementation (implement inheritance)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
(Public) inheritance is a simple and easy-to-understand concept. Once it is closely examined, it will prove that it is composed of two independent parts: inheritance of function interfaces (Inheritance of function interfa
Item 37: Never redefine the inherited default parameter value of a function (the default parameter value obtained through inheritance)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
We started to simplify this topic. Only two functions can be inherited by you: Virtual and non-virtual ). However, redefining an inherited non-virtual function (a non-virtual function derived from inheritance) is alw
Item 25: consider supporting a non-throwing swap (without throwing an exception swap)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Swap is an interesting function. It was first introduced as a component of STL, and later became the pillar of exception-safe programming (abnormal security programming) (see item 29) and General mechanism to suppress the possibility of self-assignment (see item
Item 12: Copy all parts of an object)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
In the well-designed object-oriented systems (object-oriented system), the internal component of the object is encapsulated. There are only two objects (object) Copying functions: it is called copy constructor (copy constructor) and copy assignment operator (copy assignment operator ). They are collectively re
Item 7: declare Destructors (destructor) as virtual in polymorphic base classes (polymorphism base class)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
There are many ways to get the time, so it is necessary to establish a timekeeper base class (base class), and create Derived classes (derived class) for different timing methods ):
Class timekeeper {Public:Timekeeper ();~ Timekeeper ();...};
C
Chapter 2. constructors, Destructors, and assignment operators)
By Scott Meyers
Translator: fatalerror99 (itepub's nirvana)
Release: http://blog.csdn.net/fatalerror99/
Almost every class you write has one or more constructors, one destructor, and one copy assignment operator ). Don't be surprised. They are just like your bread. They control basic operations, such as creating a new object and ensuring that it has been initialized, eliminate an object
than code segment 1. In these two instances, "1", "2", and "3" are called odd numbers, while "Sleep", "power_off", and "power_on" are fixed values. There are three methods for defining fixed values in C ++: # define, const, and enum.Scott Meyers, author of effect c ++, once suggested that const should be used to replace # define with Const. This sentence is not without reason. On the other hand, # define and const can be used in many places.For examp
C ++.Niclai josutis. The C ++ standard library: a tutorial and referenceSteve Kleiman, devang Shah, and Bart smaalders. Programming with threadsDoug Lea. Concurrent Programming in Java: design principles and patternsBil Lewis. threads Primer: A Guide to multithreaded programmingStan Lippman. Inside the C ++ Object ModelMarshall Kirk mckusick, Keith Bostic, Michael J. Karels, and John S. Quarterman. The design and implementation of the 4.4bsd operating system.Scott
configuration is executed, the execution script and the pclint configuration file (*. LNT) will be generated and the next step will continue.
4. Select the generation path, installation path, and file name, and then click Next.
5. Select the compiler. Currently, Visual Studio has a maximum value of 2008, so you have to select this option. Then click Next.
6. Select the platform and select the corresponding platform as needed. Here, select 32bit and click Next.
7. select the d
language, C programming language: modern methods, C traps and defects, kenig, brilliant programming, Steve Maguire, the C Programming Language
C ++ (recommendation blog): Problem Solving with C ++
Phase 1
C ++ Primer
This book provides a comprehensive and authoritative explanation of the basic concepts, technologies, and modern c ++ programming styles of C ++. It is the best guide for beginners of C ++; this book helps you write practical programs without having to master the details of each la
principles
C Language: C primer plus, C programming language, C programming language: modern methods, C traps and defects, kenig, brilliant programming, Steve Maguire, the C Programming Language
C ++ (recommendation blog): Problem Solving with C ++
Phase 1
C ++ Primer
This book provides a comprehensive and authoritative explanation of the basic concepts, technologies, and modern c ++ programming styles of C ++. It is the best guide for beginners of C ++; this book helps you write practical prog
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.