Chapter 11 ABSOLUTE C++ Separate Compilation and Namespaces WALTER SAVITCH SECOND EDITION PEARSON Copyright2006 Pearson Addison-Wesley All rights reserved
Chapter 11 Separate Compilation and Namespaces
Learning Objectives Separate Compilation Encapsulation reviewed Header and implementation files ◆Namespaces ◆using directives ◆Qualifying names ◆Unnamed namespaces Hiding helping functions ◆Nested namespaces Copyright006 Pearson Addison-Wesley.All rights reserved. 11-2
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 11-2 Learning Objectives ¨ Separate Compilation ¨ Encapsulation reviewed ¨ Header and implementation files ¨ Namespaces ¨ using directives ¨ Qualifying names ¨ Unnamed namespaces ¨ Hiding helping functions ¨ Nested namespaces
Separate Compilation ◆Program Parts Kept in separate files ◆Compiled separately Linked together before program runs ◆Class definitions Separate from "using"programs Build library of classes Re-used by many different programs Just like predefined libraries Copyright 2006 Pearson Addison-Wesley.All rights reserved. 11-3
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 11-3 Separate Compilation ¨ Program Parts ¨ Kept in separate files ¨ Compiled separately ¨ Linked together before program runs ¨ Class definitions ¨ Separate from "using" programs ¨ Build library of classes ¨ Re-used by many different programs ¨ Just like predefined libraries
Class Separation ◆Class Independence Separate class definition/specification ◆Called"interface" Separate class implementation ◆Place in two files ◆If implementation changes→only that file need be changed +Class specification need not change "User"programs need not change Copyright006 Pearson Addison-Wesley.All rights reserved. 11-4
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 11-4 Class Separation ¨ Class Independence ¨Separate class definition/specification ¨Called "interface" ¨Separate class implementation ¨Place in two files ¨ If implementation changes only that file need be changed ¨Class specification need not change ¨"User" programs need not change
Encapsulation Reviewed Encapsulation principle: Separate how class is used by programmer from details of class's implementation "Complete"separation ◆Change to implementation→NO impact on any other programs ◆Basic OOP principle Copyright 2006 Pearson Addison-Wesley.All rights reserved. 11-5
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 11-5 Encapsulation Reviewed ¨ Encapsulation principle: ¨Separate how class is used by programmer from details of class’s implementation ¨ "Complete" separation ¨Change to implementation NO impact on any other programs ¨ Basic OOP principle