دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Meyers. Scott
سری: Addison-Wesley Professional Computing series
ISBN (شابک) : 9780132979191, 0132979195
ناشر: Addison-Wesley Professional
سال نشر: 2012
تعداد صفحات: [934]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 6 Mb
در صورت تبدیل فایل کتاب Effective C++ Digital Collection: 140 Ways to Improve Your Programming به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مجموعه دیجیتال موثر C++: 140 راه برای بهبود برنامه نویسی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
کتابهای مهم C اسکات مایرز-C موثر ،C موثرتر وSTL موثر-برای صدها هزار
برنامه نویس C بسیار مفید بوده است. هر سه در نهایت با هم در این
مجموعه کتاب الکترونیکی موجود هستند.C موثر توسط صدها هزار
برنامه نویس در سراسر جهان پذیرفته شده است. دلیل روشن است:
رویکرد عملی اسکات مایرز به C قوانین سرانگشتی را که توسط
کارشناسان برای تولید کد واضح، صحیح و کارآمد استفاده میشود،
توصیف میکند. این کتاب حول 55 دستورالعمل خاص سازماندهی شده است
که هر یک روشی را برای نوشتن بهتر C توضیح می دهد. هر کدام با
مثال های عینی پشتیبانی می شوند. Meyers درC More
Effective 35 راه برای بهبود برنامه ها و طرح های شما ارائه
می دهد. Meyers با تکیه بر سال ها تجربه، نحوه نوشتن نرم افزاری
را توضیح می دهد که موثرتر باشد: کارآمدتر، قوی تر، سازگارتر،
قابل حمل تر، و قابل استفاده مجددتر. به طور خلاصه، چگونه میتوان
نرمافزار C نوشت که بهتر است. درSTL موثر، Meyers فراتر
از توصیف آنچه در STL است فراتر می رود تا نحوه استفاده از آن را
به شما نشان دهد. هر یک از 50 دستورالعمل کتاب توسط تجزیه و تحلیل
افسانهای و مثالهای دقیق Meyers پشتیبانی میشود، بنابراین شما
نه تنها یاد خواهید گرفت که چه کاری انجام دهید، بلکه همچنین یاد
خواهید گرفت که چه زمانی و چرا آن را انجام دهید. این کتابها با
هم در این مجموعه، ویژگیهای مهم زیر را شامل میشوند:
راهنمای تخصصی در طراحی کلاسها، توابع، الگوها و سلسلهمراتبهای
وراثت مؤثر.
کاربردهای جدید عملکرد استاندارد کتابخانه \"TR1\"، به همراه
مقایسه با مؤلفههای کتابخانه استاندارد موجود.
بینشهایی در مورد تفاوتهای بین C و زبانهای دیگر (مانند جاوا،
C#، C) که به توسعهدهندگان آن زبانها کمک میکند تا «راه C» را
برای انجام کارها جذب کنند.
روش های اثبات شده برای بهبود کارایی برنامه، از جمله بررسی دقیق
هزینه های زمانی/مکانی ویژگی های زبان C
توضیحات جامع تکنیک های پیشرفته مورد استفاده توسط کارشناسان C،
از جمله قرار دادن جدید، سازندگان مجازی، اشاره گرهای هوشمند،
شمارش مراجع، پروکسی کلاسها و ارسال دوگانه
نمونههایی از تأثیر عمیق مدیریت استثنا بر ساختار و رفتار
کلاسها و توابع C
درمانهای عملی ویژگیهای زبان جدید، از جمله bool، تغییرپذیر،
صریح، فضاهای نام، قالبهای اعضا ، کتابخانه الگوی استاندارد و
موارد دیگر. اگر کامپایلرهای شما هنوز از این ویژگیها پشتیبانی
نمیکنند، Meyers به شما نشان میدهد که چگونه کار را بدون
آنها انجام دهید.
توصیههایی در مورد انتخاب بین کانتینرهای استاندارد STL (مانند
بردار و لیست)، کانتینرهای غیر استاندارد STL (مانند hash_set و
hash_map) و ظروف غیر STL (مانند بیتست).
تکنیکهایی برای به حداکثر رساندن کارایی STL و برنامههایی که از
آن استفاده میکنند.
اطلاعاتی از رفتار تکرارکنندهها، اشیاء تابع، و تخصیصدهندهها،
از جمله چیزهایی که شما نباید انجام شود.
راهنمایی برای استفاده صحیح از الگوریتم ها و توابع عضوی که نام
آنها یکسان است (به عنوان مثال، پیدا کردن)، اما اقدامات آنها به
روش های ظریف (اما مهم) متفاوت است.
بحث در مورد مشکلات بالقوه حمل و نقل ، از جمله راه های ساده برای
جلوگیری از آنها.
Scott Meyers's seminal C++ books-Effective
C++,More Effective C++, andEffective STL-have been immensely helpful to hundreds
of thousands of C++ programmers. All three are finally
available together in this eBook collection.Effective
C++has been embraced by hundreds of thousands of
programmers worldwide. The reason is clear: Scott Meyers's
practical approach to C++ describes the rules of thumb used by
the experts to produce clear, correct, efficient code. The book
is organized around 55 specific guidelines, each of which
describes a way to write better C++. Each is backed by concrete
examples. InMore Effective C++, Meyers presents 35 ways
to improve your programs and designs. Drawing on years of
experience, Meyers explains how to write software that is more
effective: more efficient, more robust, more consistent, more
portable, and more reusable. In short, how to write C++
software that's just plain better. InEffective STL,
Meyers goes beyond describing what's in the STL to show you how
to use it. Each of the book's 50 guidelines is backed by
Meyers's legendary analysis and incisive examples, so you'll
learn not only what to do, but also when to do it-and why.
Together in this collection, these books include the following
important features:
Expert guidance on the design of effective classes, functions,
templates, and inheritance hierarchies.
Applications of new "TR1" standard library functionality, along
with comparisons to existing standard library components.
Insights into differences between C++ and other languages
(e.g., Java, C#, C) that help developers from those languages
assimilate "the C++ way" of doing things.
Proven methods for improving program efficiency, including
incisive examinations of the time/space costs of C++ language
features
Comprehensive descriptions of advanced techniques used by C++
experts, including placement new, virtual constructors, smart
pointers, reference counting, proxy classes, and
double-dispatching
Examples of the profound impact of exception handling on the
structure and behavior of C++ classes and functions
Practical treatments of new language features, including bool,
mutable, explicit, namespaces, member templates, the Standard
Template Library, and more. If your compilers don't yet support
these features, Meyers shows you how to get the job done
without them.
Advice on choosing among standard STL containers (like vector
and list), nonstandard STL containers (like hash_set and
hash_map), and non-STL containers (like bitset).
Techniques to maximize the efficiency of the STL and the
programs that use it.
Insights into the behavior of iterators, function objects, and
allocators, including things you should not do.
Guidance for the proper use of algorithms and member functions
whose names are the same (e.g., find), but whose actions differ
in subtle (but important) ways.
Discussions of potential portability problems, including
straightforward ways to avoid them.
Effective C++ Digital Collection: 140 Ways to Improve Your Programming......Page 2
Effective C++......Page 15
Introduction......Page 31
Item 1: View C++ as a federation of languages.......Page 41
Item 2: Prefer consts, enums, and inlines to #defines.......Page 43
Item 3: Use const whenever possible.......Page 47
Item 4: Make sure that objects are initialized before they’re used.......Page 56
Item 5: Know what functions C++ silently writes and calls.......Page 64
Item 6: Explicitly disallow the use of compiler-generated functions you do not want.......Page 67
Item 7: Declare destructors virtual in polymorphic base classes.......Page 70
Item 8: Prevent exceptions from leaving destructors.......Page 74
Item 9: Never call virtual functions during construction or destruction.......Page 78
Item 10: Have assignment operators return a reference to *this.......Page 82
Item 11: Handle assignment to self in operator=.......Page 83
Item 12: Copy all parts of an object.......Page 87
Item 13: Use objects to manage resources.......Page 91
Item 14: Think carefully about copying behavior in resource-managing classes.......Page 96
Item 15: Provide access to raw resources in resource-managing classes.......Page 99
Item 16: Use the same form in corresponding uses of new and delete.......Page 103
Item 17: Store newed objects in smart pointers in standalone statements.......Page 105
Item 18: Make interfaces easy to use correctly and hard to use incorrectly.......Page 108
Item 19: Treat class design as type design.......Page 114
Item 20: Prefer pass-by-reference-to-const to pass-by-value.......Page 116
Item 21: Don’t try to return a reference when you must return an object.......Page 120
Item 22: Declare data members private.......Page 124
Item 23: Prefer non-member non-friend functions to member functions.......Page 128
Item 24: Declare non-member functions when type conversions should apply to all parameters.......Page 132
Item 25: Consider support for a non-throwing swap.......Page 136
Item 26: Postpone variable definitions as long as possible.......Page 143
Item 27: Minimize casting.......Page 146
Item 28: Avoid returning “handles” to object internals.......Page 153
Item 29: Strive for exception-safe code.......Page 157
Item 30: Understand the ins and outs of inlining.......Page 164
Item 31: Minimize compilation dependencies between files.......Page 170
Chapter 6: Inheritance and Object-Oriented Design......Page 179
Item 32: Make sure public inheritance models “is-a.”......Page 180
Item 33: Avoid hiding inherited names.......Page 186
Item 34: Differentiate between inheritance of interface and inheritance of implementation.......Page 191
Item 35: Consider alternatives to virtual functions.......Page 199
Item 36: Never redefine an inherited non-virtual function.......Page 208
Item 37: Never redefine a function’s inherited default parameter value.......Page 210
Item 38: Model “has-a” or “is-implemented-in-terms-of” through composition.......Page 214
Item 39: Use private inheritance judiciously.......Page 217
Item 40: Use multiple inheritance judiciously.......Page 222
Item 41: Understand implicit interfaces and compile-time polymorphism.......Page 229
Item 42: Understand the two meanings of typename.......Page 233
Item 43: Know how to access names in templatized base classes.......Page 237
Item 44: Factor parameter-independent code out of templates.......Page 242
Item 45: Use member function templates to accept “all compatible types.”......Page 248
Item 46: Define non-member functions inside templates when type conversions are desired.......Page 252
Item 47: Use traits classes for information about types.......Page 256
Item 48: Be aware of template metaprogramming.......Page 263
Chapter 8: Customizing new and delete......Page 269
Item 49: Understand the behavior of the new-handler.......Page 270
Item 50: Understand when it makes sense to replace new and delete.......Page 277
Item 51: Adhere to convention when writing new and delete.......Page 282
Item 52: Write placement delete if you write placement new.......Page 286
Item 53: Pay attention to compiler warnings.......Page 292
Item 54: Familiarize yourself with the standard library, including TR1.......Page 293
Item 55: Familiarize yourself with Boost.......Page 299
Appendix A: Beyond Effective C++......Page 303
Appendix B: Item Mappings Between Second and Third Editions......Page 307
A......Page 310
C......Page 311
D......Page 313
E......Page 314
F......Page 317
I......Page 318
M......Page 320
O......Page 321
P......Page 322
R......Page 323
S......Page 324
T......Page 325
V......Page 326
X......Page 327
More Effective C++......Page 330
Introduction......Page 342
Item 1: Distinguish between pointers and references.......Page 350
Item 2: Prefer C++-style casts.......Page 353
Item 3: Never treat arrays polymorphically.......Page 357
Item 4: Avoid gratuitous default constructors.......Page 360
Item 5: Be wary of user-defined conversion functions.......Page 365
Item 6: Distinguish between prefix and postfix forms of increment and decrement operators.......Page 372
Item 7: Never overload &&, ||, or ,.......Page 376
Item 8: Understand the different meanings of new and delete.......Page 379
Exceptions......Page 385
Item 9: Use destructors to prevent resource leaks.......Page 386
Item 10: Prevent resource leaks in constructors.......Page 391
Item 11: Prevent exceptions from leaving destructors.......Page 399
Item 12: Understand how throwing an exception differs from passing a parameter or calling a virtual function.......Page 402
Item 13: Catch exceptions by reference.......Page 409
Item 14: Use exception specifications judiciously.......Page 413
Item 15: Understand the costs of exception handling.......Page 419
Efficiency......Page 422
Item 16: Remember the 80-20 rule.......Page 423
Item 17: Consider using lazy evaluation.......Page 426
Item 18: Amortize the cost of expected computations.......Page 434
Item 19: Understand the origin of temporary objects.......Page 439
Item 20: Facilitate the return value optimization.......Page 442
Item 21: Overload to avoid implicit type conversions.......Page 446
Item 22: Consider using op= instead of stand-alone op.......Page 448
Item 23: Consider alternative libraries.......Page 451
Item 24: Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI.......Page 454
Item 25: Virtualizing constructors and non-member functions.......Page 464
Item 26: Limiting the number of objects of a class.......Page 471
Item 27: Requiring or prohibiting heap-based objects.......Page 486
Item 28: Smart pointers.......Page 500
Item 29: Reference counting.......Page 524
Item 30: Proxy classes.......Page 554
Item 31: Making functions virtual with respect to more than one object.......Page 569
Item 32: Program in the future tense.......Page 593
Item 33: Make non-leaf classes abstract.......Page 599
Item 34: Understand how to combine C++ and C in the same program.......Page 611
Item 35: Familiarize yourself with the language standard.......Page 618
Recommended Reading......Page 626
An auto_ptr Implementation......Page 632
A......Page 636
C......Page 637
D......Page 639
E......Page 641
F......Page 642
I......Page 643
M......Page 644
O......Page 645
P......Page 647
R......Page 649
S......Page 650
T......Page 651
V......Page 652
Y......Page 653
A......Page 654
C......Page 655
M......Page 656
R......Page 657
T......Page 658
W......Page 659
Effective STL......Page 661
Introduction......Page 675
Item 1: Choose your containers with care.......Page 685
Item 2: Beware the illusion of container-independent code.......Page 689
Item 3: Make copying cheap and correct for objects in containers.......Page 694
Item 4: Call empty instead of checking size() against zero.......Page 697
Item 5: Prefer range member functions to their single-element counterparts.......Page 698
Item 6: Be alert for C++’s most vexing parse.......Page 707
Item 7: When using containers of newed pointers, remember to delete the pointers before the container is destroyed.......Page 710
Item 8: Never create containers of auto_ptrs.......Page 714
Item 9: Choose carefully among erasing options.......Page 717
Item 10: Be aware of allocator conventions and restrictions.......Page 722
Item 11: Understand the legitimate uses of custom allocators.......Page 728
Item 12: Have realistic expectations about the thread safety of STL containers.......Page 732
Item 13: Prefer vector and string to dynamically allocated arrays.......Page 737
Item 14: Use reserve to avoid unnecessary reallocations.......Page 740
Item 15: Be aware of variations in string implementations.......Page 742
Item 16: Know how to pass vector and string data to legacy APIs.......Page 748
Item 17: Use “the swap trick” to trim excess capacity.......Page 751
Item 18: Avoid using vector.......Page 753
Item 19: Understand the difference between equality and equivalence.......Page 757
Item 20: Specify comparison types for associative containers of pointers.......Page 762
Item 21: Always have comparison functions return false for equal values.......Page 766
Item 22: Avoid in-place key modification in set and multiset.......Page 769
Item 23: Consider replacing associative containers with sorted vectors.......Page 774
Item 24: Choose carefully between map::operator[] and map::insert when efficiency is important.......Page 780
Item 25: Familiarize yourself with the nonstandard hashed containers.......Page 785
Item 26: Prefer iterator to const_iterator, reverse_iterator, and const_reverse_iterator.......Page 790
Item 27: Use distance and advance to convert a container’s const_iterators to iterators.......Page 794
Item 28: Understand how to use a reverse_iterator’s base iterator.......Page 797
Item 29: Consider istreambuf_iterators for character-by-character input.......Page 800
Chapter 5: Algorithms......Page 802
Item 30: Make sure destination ranges are big enough.......Page 803
Item 31: Know your sorting options.......Page 807
Item 32: Follow remove-like algorithms by erase if you really want to remove something.......Page 813
Item 33: Be wary of remove-like algorithms on containers of pointers.......Page 817
Item 34: Note which algorithms expect sorted ranges.......Page 820
Item 35: Implement simple case-insensitive string comparisons via mismatch or lexicographical_compare.......Page 824
Item 36: Understand the proper implementation of copy_if.......Page 828
Item 37: Use accumulate or for_each to summarize ranges.......Page 830
Item 38: Design functor classes for pass-by-value.......Page 836
Item 39: Make predicates pure functions.......Page 840
Item 40: Make functor classes adaptable.......Page 843
Item 41: Understand the reasons for ptr_fun, mem_fun, and mem_fun_ref.......Page 847
Item 42: Make sure lessmeans operator<.......Page 851
Item 43: Prefer algorithm calls to hand-written loops.......Page 855
Item 44: Prefer member functions to algorithms with the same names.......Page 864
Item 45: Distinguish among count, find, binary_search, lower_bound, upper_bound, and equal_range.......Page 866
Item 46: Consider function objects instead of functions as algorithm parameters.......Page 875
Item 47: Avoid producing write-only code.......Page 880
Item 48: Always #include the proper headers.......Page 883
Item 49: Learn to decipher STL-related compiler diagnostics.......Page 884
Item 50: Familiarize yourself with STL-related web sites.......Page 891
Bibliography......Page 899
Appendix A: Locales and Case-Insensitive String Comparisons......Page 903
Appendix B: Remarks on Microsoft’s STL Platforms......Page 913
A......Page 919
B......Page 920
C......Page 921
D......Page 922
E......Page 923
F......Page 925
I......Page 926
L......Page 927
M......Page 928
P......Page 929
R......Page 930
S......Page 931
T......Page 932
V......Page 933
Z......Page 934