《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 7 Constructors and Other Tools

Chapter 7 ABSOLUTE C++ Constructors and Other Tools WALTER SAVITCH SECOND EDITION PEARSON Copyright2006 Pearson Addison-Wesley All rights reserved
Chapter 7 Constructors and Other Tools

Learning Objectives ◆Constructors ◆Definitions ◆Calling ◆More Tools const parameter modifier ◆Inline functions ◆Static member data ◆Vectors Introduction to vector class Copyright006 Pearson Addison-Wesley.All rights reserved. 7-2
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-2 Learning Objectives ¨ Constructors ¨ Definitions ¨ Calling ¨ More Tools ¨ const parameter modifier ¨ Inline functions ¨ Static member data ¨ Vectors ¨ Introduction to vector class

Constructors Initialization of objects Initialize some or all member variables Other actions possible as well .A special kind of member function Automatically called when object declared ◆Very useful tool ◆Key principle of OOP Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-3
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-3 Constructors ¨ Initialization of objects ¨Initialize some or all member variables ¨Other actions possible as well ¨ A special kind of member function ¨Automatically called when object declared ¨ Very useful tool ¨Key principle of OOP

Constructor Definitions Constructors defined like any member function ◆Except: 1.Must have same name as class 2.Cannot return a value;not even void! Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-4
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-4 Constructor Definitions ¨ Constructors defined like any member function ¨ Except: 1. Must have same name as class 2. Cannot return a value; not even void!

Constructor Definition Example Class definition with constructor: ◆class DayOfYear public: DayOfYear(int monthValue,int dayValue); //Constructor initializes month day void input(); void output(); private: int month; int day; } Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-5
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-5 Constructor Definition Example ¨ Class definition with constructor: ¨ class DayOfYear { public: DayOfYear(int monthValue, int dayValue); //Constructor initializes month & day void input(); void output(); . private: int month; int day; }

Constructor Notes Notice name of constructor:DayOfYear Same name as class itself! Constructor declaration has no return-type ◆Not even void! Constructor in public section It's called when objects are declared ◆If private,could never declare objects! Copyright6 Pearson Addison-Wesley.All rights reserved. 7-6
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-6 Constructor Notes ¨ Notice name of constructor: DayOfYear ¨ Same name as class itself! ¨ Constructor declaration has no return-type ¨ Not even void! ¨ Constructor in public section ¨ It’s called when objects are declared ¨ If private, could never declare objects!

Calling Constructors ◆Declare objects: DayOfYear date1(7,4), date2(5,5); Objects are created here Constructor is called Values in parents passed as arguments to constructor Member variables month,day initialized: date1.month→7date2.month→5 date1.dat→4date2.day→5 Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-7
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-7 Calling Constructors ¨ Declare objects: DayOfYear date1(7, 4), date2(5, 5); ¨ Objects are created here ¨ Constructor is called ¨ Values in parents passed as arguments to constructor ¨ Member variables month, day initialized: date1.month 7 date2.month 5 date1.dat 4 date2.day 5

Constructor Equivalency ◆Consider: DayOfYear date1,date2 date1.DayOfYear(7,4);/ILLEGAL! date2.DayOfYear(5,5);/ILLEGAL! ◆Seemingly OK. CANNOT call constructors like other nember functions! Copyright006 Pearson Addison-Wesley.All rights reserved. 7-8
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-8 Constructor Equivalency ¨ Consider: ¨DayOfYear date1, date2 date1.DayOfYear(7, 4); // ILLEGAL! date2.DayOfYear(5, 5); // ILLEGAL! ¨ Seemingly OK. ¨CANNOT call constructors like other member functions!

Constructor Code Constructor definition is like all other member functions: DayOfYear:DayOfYear(int monthValue,int dayValue) month monthValue; day dayValue; Note same name around Clearly identifies a constructor ◆Note no return type Just as in class definition Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-9
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-9 Constructor Code ¨ Constructor definition is like all other member functions: DayOfYear::DayOfYear(int monthValue, int dayValue) { month = monthValue; day = dayValue; } ¨ Note same name around :: ¨ Clearly identifies a constructor ¨ Note no return type ¨ Just as in class definition

Alternative Definition Previous definition equivalent to: DayOfYear:DayOfYear( int monthValue, int dayValue) month(monthValue),day(dayValue)< {.} Third line called "Initialization Section" ◆Body left empty Preferable definition version Copyright 2006 Pearson Addison-Wesley.All rights reserved. 7-10
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-10 Alternative Definition ¨ Previous definition equivalent to: DayOfYear::DayOfYear( int monthValue, int dayValue) : month(monthValue), day(dayValue) {.} ¨ Third line called "Initialization Section" ¨ Body left empty ¨ Preferable definition version
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 6 Structures and Classes.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 2 Flow of Control.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 3 Function Basics.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 1 C++ Basics.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 4 Parameters and Overloading.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第三章.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第二章 信源与信息熵.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第一章 绪论(主讲:王军选).ppt
- 《信息论与编码》课程教学资源(作业习题)第三章 信道与信道容量(含解答).pdf
- 《信息论与编码》课程教学资源(作业习题)自测题无答案.pdf
- 《信息论与编码》课程教学实验指导书.pdf
- 《信息论与编码》课程教学大纲 Element of Information Theory and Coding B.pdf
- 《信息论与编码》课程教学大纲 Element of Information Theory and Coding A.pdf
- 《信息安全概论》课程教学资源(PPT课件)第9章 信息安全标准与法律法规.ppt
- 《信息安全概论》课程教学资源(PPT课件)第2章 信息保密技术.ppt
- 《信息安全概论》课程教学资源(PPT课件)第7章 网络安全技术.ppt
- 《信息安全概论》课程教学资源(PPT课件)第8章 信息安全管理.ppt
- 《信息安全概论》课程教学资源(PPT课件)第6章 访问控制技术.ppt
- 《信息安全概论》课程教学资源(PPT课件)第5章 操作系统与数据库安全.ppt
- 《信息安全概论》课程教学资源(PPT课件)第1章 绪论.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 8 Operator Overloading, Friends, and References.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 5 Arrays.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 11 Separate Compilation and Namespaces.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 12 Streams and File IO.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 10 Pointers and Dynamic Arrays.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 9 Strings.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 13 Inheritance.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 14 Polymorphism and Virtual Functions.ppt
- 《微机技术及应用》课程教学大纲 Microcmputer Technology and aplications.doc
- 《微型计算机技术及应用》课程电子教案(PPT教学课件,共十五章,完整版).pptx
- 《计算机导论》课程教学大纲 Computer Concepts.pdf
- 《计算机导论》课程教学课件(英文讲稿)1-a-Computer History+ Di Devices.pdf
- 《计算机导论》课程教学课件(英文讲稿)1-b-Digital Data Representation.pdf
- 《计算机导论》课程教学课件(英文讲稿)2-a-Computer Hardware.pdf
- 《计算机导论》课程教学课件(英文讲稿)2-b-Computer Hardware.pdf
- 《计算机导论》课程教学课件(英文讲稿)3-a-b-Computer Software.pdf
- 《计算机导论》课程教学课件(英文讲稿)4- operating system.pdf
- 《计算机导论》课程教学课件(英文讲稿)4-a- File mangement.pdf
- 《计算机导论》课程教学课件(英文讲稿)5-a- LANS_WANS.pdf
- 《计算机导论》课程教学课件(英文讲稿)5-b- LANS_WANS.pdf