推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

C++ Primer Plus (5th.Edition)完整英文版

更新时间:2019-10-18 16:13:30 大小:6M 上传用户:JC丶查看TA发布的资源 标签:C++ 下载积分:5分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

C++ Primer Plus (5th.Edition)完整英文版



部分文件列表

文件名 大小
C++_Primer_Plus_(5th.Edition).pdf 6M

部分页面预览

(完整内容请下载后查看)
C++  
Primer Plus  
Fifth Edition  
Stephen Prata  
800 East 96th St., Indianapolis, Indiana, 46240 USA  
ASSOCIATE PUBLISHER  
Michael Stephens  
C++ Primer Plus  
Copyright © 2005 by Sams Publishing  
ACQUISITIONS EDITOR  
Loretta Yates  
All rights reserved. No part of this book shall be reproduced, stored in a retrieval system,  
or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise,  
without written permission from the publisher. No patent liability is assumed with respect  
to the use of the information contained herein. Although every precaution has been taken  
in the preparation of this book, the publisher and author assume no responsibility for errors  
or omissions. Nor is any liability assumed for damages resulting from the use of the infor-  
mation contained herein.  
DEVELOPMENT EDITOR  
Songlin Qiu  
MANAGING EDITOR  
Charlotte Clapp  
PROJECT EDITOR  
George E. Nedeff  
International Standard Book Number: 0-672-32697-3  
Library of Congress Catalog Card Number: 2004095067  
Printed in the United States of America  
COPY EDITOR  
Kitty Jarrett  
First Printing: November, 2004  
INDEXER  
Erika Millen  
07 06 05 04  
4
3
2
1
PROOFREADER  
Suzanne Thomas  
Trademarks  
TECHNICAL EDITOR  
David Horvath  
All terms mentioned in this book that are known to be trademarks or service marks have  
been appropriately capitalized. Sams Publishing cannot attest to the accuracy of this infor-  
mation. Use of a term in this book should not be regarded as affecting the validity of any  
trademark or service mark.  
PUBLISHING  
COORDINATOR  
Cindy Teeters  
MULTIMEDIA DEVELOPER  
Warning and Disclaimer  
Dan Scherf  
Every effort has been made to make this book as complete and as accurate as possible, but  
no warranty or fitness is implied. The information provided is on an “as is” basis.  
BOOK DESIGNER  
Gary Adair  
Bulk Sales  
Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk  
purchases or special sales. For more information, please contact  
U.S. Corporate and Government Sales  
1-800-382-3419  
For sales outside of the U.S., please contact  
International Sales  
1-317-428-3341  
CONTENTS AT A GLANCE  
INTRODUCTION  
1
CHAPTER 1  
CHAPTER 2  
CHAPTER 3  
CHAPTER 4  
CHAPTER 5  
CHAPTER 6  
CHAPTER 7  
CHAPTER 8  
CHAPTER 9  
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11  
Setting Out to C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29  
Dealing with Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65  
Compound Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109  
Loops and Relational Expressions . . . . . . . . . . . . . . . . . . . . . . . .177  
Branching Statements and Logical Operators . . . . . . . . . . . . . . .231  
Functions: C++s Programming Modules . . . . . . . . . . . . . . . . . . .279  
Adventures in Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337  
Memory Models and Namespaces . . . . . . . . . . . . . . . . . . . . . . . .393  
CHAPTER 10 Objects and Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445  
CHAPTER 11 Working with Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501  
CHAPTER 12 Classes and Dynamic Memory Allocation . . . . . . . . . . . . . . . . . .561  
CHAPTER 13 Class Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .633  
CHAPTER 14 Reusing Code in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .701  
CHAPTER 15 Friends, Exceptions, and More . . . . . . . . . . . . . . . . . . . . . . . . . .787  
CHAPTER 16 The stringClass and the Standard Template Library . . . . . . . . .857  
CHAPTER 17 Input, Output, and Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .951  
APPENDIX A Number Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1041  
APPENDIX B C++ Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1047  
APPENDIX C The ASCII Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1051  
APPENDIX D Operator Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1057  
APPENDIX E Other Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1063  
APPENDIX F The stringTemplate Class . . . . . . . . . . . . . . . . . . . . . . . . . . . .1075  
APPENDIX G The STL Methods and Functions . . . . . . . . . . . . . . . . . . . . . . .1095  
APPENDIX H Selected Readings and Internet Resources . . . . . . . . . . . . . . . . .1129  
APPENDIX I Converting to ANSI/ISO Standard C++ . . . . . . . . . . . . . . . . . . .1133  
APPENDIX J Answers to Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . .1141  
INDEX  
1165  
TABLE OF CONTENTS  
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1  
CHAPTER 1: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11  
Learning C++: What Lies Before You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11  
The Origins of C++: A Little History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12  
The C Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13  
C Programming Philosophy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13  
The C++ Shift: Object-Oriented Programming . . . . . . . . . . . . . . . . . . . . . .14  
C++ and Generic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15  
The Genesis of C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16  
Portability and Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17  
The Mechanics of Creating a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19  
Creating the Source Code File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20  
Compilation and Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27  
CHAPTER 2: Setting Out to C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29  
C++ Initiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29  
The main()Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31  
C++ Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34  
The C++ Preprocessor and the iostreamFile . . . . . . . . . . . . . . . . . . . . . . .35  
Header Filenames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36  
Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37  
C++ Output with cout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38  
C++ Source Code Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41  
C++ Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43  
Declaration Statements and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43  
Assignment Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45  
A New Trick for cout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46  
More C++ Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47  
Using cin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47  
Concatenating with cout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48  
cinand cout: A Touch of Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48  
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50  
Using a Function That Has a Return Value . . . . . . . . . . . . . . . . . . . . . . . . .50  
Function Variations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54  
User-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55  
Using a User-Defined Function That Has a Return Value . . . . . . . . . . . . . . .58  
Placing the usingDirective in Multifunction Programs . . . . . . . . . . . . . . . .60  
vi  
C++ PRIMER PLUS, FIFTH EDITION  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64  
CHAPTER 3: Dealing with Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65  
Simple Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66  
Names for Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66  
Integer Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68  
The short, int, and longInteger Types . . . . . . . . . . . . . . . . . . . . . . . . . . .68  
Unsigned Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73  
Choosing an Integer Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75  
Integer Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76  
How C++ Decides What Type a Constant Is . . . . . . . . . . . . . . . . . . . . . . . .78  
The charType: Characters and Small Integers . . . . . . . . . . . . . . . . . . . . . .79  
The boolType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87  
The constQualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88  
Floating-Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89  
Writing Floating-Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89  
Floating-Point Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91  
Floating-Point Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93  
Advantages and Disadvantages of Floating-Point Numbers . . . . . . . . . . . . .94  
C++ Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95  
Order of Operation: Operator Precedence and Associativity . . . . . . . . . . . .96  
Division Diversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97  
The Modulus Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99  
Type Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107  
CHAPTER 4: Compound Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109  
Introducing Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110  
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112  
Initialization Rules for Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113  
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114  
Concatenating String Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116  
Using Strings in an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116  
Adventures in String Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118  
Reading String Input a Line at a Time . . . . . . . . . . . . . . . . . . . . . . . . . . . .119  
Mixing String and Numeric Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124  
CONTENTS  
vii  
Introducing the stringClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125  
Assignment, Concatenation, and Appending . . . . . . . . . . . . . . . . . . . . . . .126  
More stringClass Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127  
More on stringClass I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129  
Introducing Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131  
Using a Structure in a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133  
Can a Structure Use a stringClass Member? . . . . . . . . . . . . . . . . . . . . . .135  
Other Structure Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136  
Arrays of Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137  
Bit Fields in Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139  
Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139  
Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141  
Setting Enumerator Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142  
Value Ranges for Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143  
Pointers and the Free Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144  
Declaring and Initializing Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147  
Pointer Danger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149  
Pointers and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150  
Allocating Memory with new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150  
Freeing Memory with delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152  
Using newto Create Dynamic Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153  
Pointers, Arrays, and Pointer Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . .156  
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157  
Pointers and Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162  
Using newto Create Dynamic Structures . . . . . . . . . . . . . . . . . . . . . . . . . .166  
Automatic Storage, Static Storage, and Dynamic Storage . . . . . . . . . . . . . .170  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174  
CHAPTER 5: Loops and Relational Expressions . . . . . . . . . . . . . . . . . . . . . . . . .177  
Introducing forLoops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178  
forLoop Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179  
Back to the forLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185  
Changing the Step Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187  
Inside Strings with the forLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188  
The Increment (++) and Decrement (--) Operators . . . . . . . . . . . . . . . . . .189  
Side Effects and Sequence Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190  
Prefixing Versus Postfixing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191  
The Increment/Decrement Operators and Pointers . . . . . . . . . . . . . . . . . .191  
Combination Assignment Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192  
viii  
C++ PRIMER PLUS, FIFTH EDITION  
Compound Statements, or Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193  
The Comma Operator (or More Syntax Tricks) . . . . . . . . . . . . . . . . . . . . .195  
Relational Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198  
A Mistake You’ll Probably Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199  
Comparing C-Style Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201  
Comparing stringClass Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204  
The whileLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205  
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207  
forVersus while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207  
Just a Moment—Building a Time-Delay Loop . . . . . . . . . . . . . . . . . . . . . .209  
The do whileLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211  
Loops and Text Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213  
Using Unadorned cinfor Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214  
cin.get(char)to the Rescue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215  
Which cin.get()? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216  
The End-of-File Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217  
Yet Another Version of cin.get(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220  
Nested Loops and Two-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . .223  
Initializing a Two-Dimensional Array . . . . . . . . . . . . . . . . . . . . . . . . . . . .225  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229  
CHAPTER 6: Branching Statements and Logical Operators . . . . . . . . . . . . . . . . .231  
The ifStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231  
The if elseStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233  
Formatting if elseStatements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235  
The if else if elseConstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236  
Logical Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238  
The Logical OR Operator: || . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238  
The Logical AND Operator: && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239  
The Logical NOT Operator: ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244  
Logical Operator Facts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246  
Alternative Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247  
The cctypeLibrary of Character Functions . . . . . . . . . . . . . . . . . . . . . . . . . .247  
The ?: Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250  
The switchStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251  
Using Enumerators as Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255  
switchand if else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256  
The breakand continueStatements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256  
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258  
CONTENTS  
ix  
Number-Reading Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259  
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262  
Simple File Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262  
Text I/O and Text Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263  
Writing to a Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264  
Reading from a Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276  
CHAPTER 7: Functions: C++s Programming Modules . . . . . . . . . . . . . . . . . . . .279  
Function Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280  
Defining a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281  
Prototyping and Calling a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283  
Function Arguments and Passing by Value . . . . . . . . . . . . . . . . . . . . . . . . . .286  
Multiple Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288  
Another Two-Argument Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290  
Functions and Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293  
How Pointers Enable Array-Processing Functions . . . . . . . . . . . . . . . . . . .294  
The Implications of Using Arrays as Arguments . . . . . . . . . . . . . . . . . . . .295  
More Array Function Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297  
Functions Using Array Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303  
Pointers and const . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305  
Functions and Two-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . .308  
Functions and C-Style Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309  
Functions with C-Style String Arguments . . . . . . . . . . . . . . . . . . . . . . . . .310  
Functions That Return C-Style Strings . . . . . . . . . . . . . . . . . . . . . . . . . . .312  
Functions and Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313  
Passing and Returning Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314  
Another Example of Using Functions with Structures . . . . . . . . . . . . . . . .316  
Passing Structure Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320  
Functions and stringClass Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322  
Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324  
Recursion with a Single Recursive Call . . . . . . . . . . . . . . . . . . . . . . . . . . .324  
Recursion with Multiple Recursive Calls . . . . . . . . . . . . . . . . . . . . . . . . . .326  
Pointers to Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327  
Function Pointer Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328  
A Function Pointer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330  
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332  
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333  
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334  

全部评论(0)

暂无评论