Thinking in C++ 2nd edition Volume 2 Standard Libraries & Advanced Topics revision 1 phần 9

dynamic_cast (chủ đề của phần đầu tiên của chương này), const_cast, static_cast và reinterpret_cast. Cửa sổ của cơ hội này mở ra khi cần cho dynamic_cast phát sinh ý nghĩa của cú pháp đúc hiện có đã quá quá tải để hỗ trợ bất kỳ chức năng bổ sung. | Trash clone const Info info return new Glass endif GLASS_H And here s a new type of Trash C09 The Cardboard class with prototyping ifndef CARDBOARD_H define CARDBOARD_H include class Cardboard public Trash static double val protected Cardboard friend class TrashPrototypeInit public Cardboard double wt Trash wt double value const return val static void value double newVal val newVal std string id return Cardboard Trash clone const Info info return new Cardboard . . endif CARDBOARD_H The static val data members must be defined and initialized in a separate code file C09 O Contains the static definitions for the Trash type s val data members include include include include include double Aluminum val double Paper val double Glass val Chapter 16 Design Patterns 481 double Cardboard val There s one other issue initialization of the static data members. TrashPrototypelnit must create the prototype objects and add them to the static Trash prototypes vector. So it s very important that you control the order of initialization of the static objects so the prototypes vector is created before any of the prototype objects which depend on the prior existence of prototypes. The most straightforward way to do this is to put all the definitions in a single file in the order in which you want them initialized. TrashPrototypelnit must be defined separately because it inserts the actual prototypes into the vector and throughout the chapter we ll be inheriting new types of Trash from the existing types. By making this one class in a separate file a different version can be created and linked in for the new situations leaving the rest of the code in the system alone. C09 o Performs initialization of all the prototypes. Create a different version of this file to make different kinds of Trash. include include include

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
187    27    1    02-12-2024
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.