ANSI-ISO Cpp Professional Programmers
Năm xuất bản
1999
Nhà xuất bản
Macmillan Computer Publishing
Download tài liệu

C ++ ngày nay rất khác so với những gì năm 1983, khi nó lần đầu tiên được đặt tên là "C ++". Nhiều tính năng đã được thêm vào đến ngôn ngữ từ đó; các tính năng cũ hơn đã được sửa đổi và một vài tính năng đã bị phản đối hoặc bị xóa
hoàn toàn ra khỏi ngôn ngữ. Một số phần mở rộng đã thay đổi hoàn toàn phong cách và khái niệm lập trình. Danh sách của tiện ích mở rộng bao gồm các hàm thành viên const, xử lý ngoại lệ, mẫu, toán tử, ép kiểu mới, không gian tên, Thư viện mẫu tiêu chuẩn, loại bool, và nhiều hơn nữa. Những điều này đã làm cho C ++ trở nên đa năng mạnh mẽ và mạnh mẽ ngôn ngữ lập trình ngày nay.

Sự phát triển của C ++ là một quá trình liên tục và tiến bộ, thay vì một loạt các cuộc cách mạng brusque. Các lập trình viên đã học C ++ chỉ ba hoặc năm năm trước và không theo kịp các phần mở rộng thường khám phá rằng ngôn ngữ trượt qua ngón tay của họ: Các đoạn mã hiện tại không biên dịch được nữa, các ngôn ngữ khác biên dịch với một
rất nhiều cảnh báo về trình biên dịch và danh sách mã nguồn trong các tạp chí hướng đối tượng có vẻ khác nhau đáng kể từ cách họ nhìn cách đây không lâu. "Không gian tên? Chưa bao giờ nghe về những điều này trước đây" và "Điều gì đã xảy ra với Diễn viên theo phong cách C? Tại sao tôi không nên sử dụng nó nữa? "Là một số câu hỏi thường gặp trong các diễn đàn C ++ khác nhau và hội nghị.

Nội dung sách gồm 14 chương

Chapter 2, "Standard Briefing: The Latest Addenda to ANSI/ISO C++," presents some of the key terms that are used in the C++ Standard, and which are used extensively in this book. Following this, the recent changes and extensions to C++ are described. Finally, Chapter 2 gives an overview of the deprecated features that are listed in the Standard, and suggests standard-conforming replacements for them.

Chapter 3, "Operator Overloading," explores the benefits as well as the potential problems of operator overloading. It discusses the restrictions that apply to operator overloading and explains how to use conversion operators.

Chapter 4, "Special Member Functions: Default Constructor, Copy Constructor, Destructor, and Assignment Operator," explains the semantics of the special member functions and their role in class design. It also demonstrates several techniques and guidelines for an effective usage of these special member functions.

Chapter 5, "Object-Oriented Programming and Design," provides a brief survey of the various programming styles that are supported by C++, focusing on the principles of object-oriented design and programming.

Chapter 6, "Exception Handling," first describes traditional error handling methods and their disadvantages, and then presents standard exception handling. A brief historical account of the design of exception handling is provided and, finally, exception handling-related performance issues are discussed.

Chapter 7, "Runtime Type Information," discusses the three components of runtime type information (RTTI), namely typeid, dynamic_cast and class type_info. In addition, it explains when the use of RTTI is necessary. Finally, it discusses the performance overhead associated with runtime type information.

Chapter 8, "Namespaces," elucidates the rationale behind the addition of namespaces to the language and the problems that namespaces solve. Then it demonstrates how namespaces are used in practice, and how they interact with other language features.

Chapter 9, "Templates," discusses various aspects of designing and implementing templates, including class templates, function templates, and template issues that are of special concern (such as pointers to members, virtual member functions within a template class, inheritance relations, and explicit instantiations).

Chapter 10, "STL and Generic Programming," is an introduction to the Standard Template Library and to generic programming in general. It discusses the principles of generic programming, focusing on STL as an exemplary framework of generic programming. This chapter also demonstrates the use of STL components: containers, algorithms, iterators, allocators, adapters, binders, and function objects. The most widely used STL components, std::vector and std::string, are explored in detail.

Chapter 11, "Memory Management," explains the memory model of C++. It describes the three types of data storage: static, automatic, and free store. This chapter also delves into the semantics of operators new and delete and their underlying implementation. In addition, it demonstrates the use of advanced memory management techniques and guides you in avoiding common memory-related errors.

Chapter 12, "Optimizing Your Code," is dedicated to code optimization. It provides useful guidelines and tips for writing more efficient code, and it proceeds toward more aggressive optimization techniques for minimizing space and accelerating runtime speed.

Chapter 13, "C Language Compatibility Issues," demonstrates how to migrate from C to C++ and, in particular, how to migrate from procedural programming to object-orientation. It lists the differences between the C subset of C++ and ISO C. Finally, it delves into the underlying representation of C++ objects in memory and their compatibility with C structs.

Chapter 14, "Concluding Remarks and Future Directions," seals this book. It describes the principles and guidelines in the design and evolution of C++ throughout the last two decades, and compares it to the evolution of other, less successful programming languages. Then it lists features that almost made it into the Standard. Next, it discusses possible future extensions, including automated garbage collection, object persistence, and concurrency. Other hypothetical future extensions that are described are dynamically linked libraries, rule-based programming, and extensible member functions.

Post Comments

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.