C++ For Artists: The Art, Philosophy, and Science of Object-Oriented Programming by Rick Miller ISBN:1932504028 Biblio Distribution © 2003 (590 pages) Intended as both a classroom and reference text, this book breaks all molds by being the first book of its kind specifically designed to help readers tap their creative energy to understand and apply difficult programming concepts Table of Contents C++ For Artists—The Art, Philosophy, and Science of Object-Oriented Programming Preface Part I - The C++ Student Survival Guide Chapter 1 - An Approach To The Art Of Programming Small Victories—Creating Projects With Chapter 2 IDE’s Project Walkthrough—An Extended Chapter 3 Example Chapter 4 - Computers, Programs, & Algorithms Part II - C++ Language Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 - Simple Programs - Controlling The Flow Of Program Execution - Pointers and References - Arrays - Functions Toward Problem Abstraction—Creating New Chapter 10 Data Types Chapter 11 - Dissecting Classes Chapter 12 - Compositional Design Extending Class Functionality Through Chapter 13 Inheritance Part III - Implementing Polymorphic Behavior Ad Hoc Polymorphism—Operator Overloading Chapter 15 - Static Polymorphism—Templates Dynamic Polymorphism—Object-Oriented Chapter 16 Programming Chapter 14 - Part IV - Intermediate Well-Behaved Objects—The Orthodox Canonical Class Form Chapter 18 - Mixed Language Programming Chapter 19 - Three Design Principles Chapter 20 - Using A UML Modeling Tool Appendix A - Project Approach Strategy Checkoff List Appendix B - ASCII Table Appendix C - Answers To Self Test Questions Index List of Figures Chapter 17 - List of Tables List of Examples Back Cover C+ for Artists: The Art, Philosophy, and Science of Object-Oriented Programming takes a refreshing and sometimes controversial approach to the complex topic of object-oriented programming and the C++ language Intended as both a classroom and reference text, C++ for Artists breaks all molds by being the first book of its kind specifically designed to help readers tap their creative energy to understand and apply difficult programming concepts C++ for Artists will help you smash through the barriers preventing you from mastering the complexities of object-oriented programming in C++ Start taming complexity now! Read C++ for Artists today—energize your programming skills for life! Supercharge your creative energy by recognizing and utilizing the power of the “flow” Quickly master multi-file programming techniques to help tame project complexity Utilize the project approach strategy to maintain programming project momentum Use the Student Survival Guide to help tackle any project thrown at you Learn a development cycle you can actually use at work Apply real-world programming, techniques to produce professional code Master the complexities of ad-hoc, static, and dynamic polymorphism Learn how to call C and C++ routines from Java programs using the Java Native Interface (JNI) Learn how to incorporate assembly language routines in your C++ code Master three object-oriented design principles that will greatly improve your software architectures Painlessly conquer pointers and references with the help of C++ Man Packed with over 43 tables, 216 illustrations, and 415 code examples Reinforce your learning with the help of chapter learning objectives, skill-building exercises, suggested projects, and self-test questions All code examples were compiled and executed before being used in the book to guarantee quality And much, much, more… About the Author Rick Miller is a Senior Software Systems Engineer and Web Applications Architect for Science Applications International Corporation (SAIC), and Assistant Professor at Northern Virginia Community College, Annandale Campus, where he teaches C++ and Java programming classes C++ For Artists—The Art, Philosophy, and Science of Object-Oriented Programming Rick Miller Pulp Free Press Falls Church, Virginia Pulp Free Press , Falls Church, Virginia 22042 www.pulpfreepress.com info@pulpfreepress.com ©2003 Richard Warren Miller & Pulp Free Press— All Rights Reserved No part of this book may be reproduced in any form without prior written permission from the publisher First edition published 2003 16 14 12 10 08 06 04 10 9 8 7 6 5 4 3 2 Pulp Free Press offers discounts on this book when ordered in bulk quantities For more information regarding sales contact sales@pulpfreepress.com The eBook/PDF edition of this book may be licensed for bulk distribution For whole or partial content licensing information contact licensing@pulpfreepress.com Publisher Cataloging-in-Publication Data: Prepared by Pulp Free Press Miller, Rick, 1961 C++ For Artists: The Art, Philosophy, and Science of Object-Oriented Programming/Rick Miller p cm Includes bibliographical references and index ISBN: 1-932504-02-8 (pbk) C++ (Computer program language) I Title Object-Oriented Programming (Computer Science) QA76.73.C153M555 2003 005.13'3 dc21 2003093826 CIP The source code provided in this book is intended for instructional purposes only Although every possible measure was made by the author to ensure the programming examples contain source code of only the highest caliber , no warranty is offered, expressed, or implied regarding the quality of the code All product names mentioned in this book are trademark names of their respective owners C++ For Artists was meticulously crafted on a Macintosh PowerMac G4 using Adobe FrameMaker, Adobe Illustrator, Macromedia Freehand, Adobe Photoshop, Adobe Acrobat, Embarcadero Technologies Describe, ObjectPlant, Microsoft Word, Maple, and VirtualPC Photos were taken with a Nikon F3HP, a Nikon FM, a Nikon CoolPix 800 and a Contax T3 C++ source code examples were prepared using Metrowerks CodeWarrior for Macintosh, Apple OSX developer tools, and Tenon Intersystems CodeBuilder Java code examples prepared using Sun’s Java 2 Standard Edition (J2SE) command line tool suite Assembly language examples prepared using Microsoft Macro Assembler (MASM) ISBN 1-932504-00-1 First eBook/PDF Edition ISBN 1-932504-01-X First CD ROM Edition ISBN 1-932504-02-8 First Paperback Edition Preface Welcome — And Thank You! Thank you for choosing C++ For Artists: The Art, Philosophy, and Science of Object-Oriented Programming You have selected an excellent book to augment your C++ and object-oriented programming learning experience If you purchased this book because it is required for a course you may feel like you had no say in the matter Paying for expensive college books feels a lot like having your arm twisted behind your back at the checkout counter If it will make you feel better I will let you in on a secret You bought a keeper If you are standing in the computer section of your favorite book store reading these lines and trying hard to decide if you should buy this book or pay the rent I say to you this: If you knew the stuff inside this book you could easily own your own place The landlord can wait Target Audience C++ For Artists targets the student who demands more from a C++ programming textbook What do I mean by student? A student is anyone who holds this book in their hands and by reading it expects to gain C++ and object-oriented programming knowledge You may be a student enrolled in a high school, college, or university — or a practicing programmer seeking ways to expand your understanding of C++ and object-oriented programming However you come to hold this book in your hands — you are my target audience ... Thank you for choosing C++ For Artists: The Art, Philosophy, and Science of Object- Oriented Programming You have selected an excellent book to augment your C++ and object- oriented programming. .. International Corporation (SAIC), and Assistant Professor at Northern Virginia Community College, Annandale Campus, where he teaches C++ and Java programming classes C++ For Artists The Art, Philosophy, and Science of Object- Oriented Programming. .. popular integrated development environments: Metrowerks CodeWarrior on the Macintosh, and Microsoft Visual C++ for the Windows platform The focus of the chapter is the concept of the project and the steps required to create projects regardless of the IDE employed