Presentation is loading. Please wait.

Presentation is loading. Please wait.

Separating Definition & Implementation Headers and Comments.

Similar presentations


Presentation on theme: "Separating Definition & Implementation Headers and Comments."— Presentation transcript:

1 Separating Definition & Implementation Headers and Comments

2 Goal Modular abstractions we can use to build complex systems

3 Not Modular or Abstract

4 Function Declaration return type name(parameter list);

5 Function Declaration Parameter names optional – Strongly encouraged – order matters!

6 Implementation Functions need to be part of class to work with properties Naked function is global – not part of any class

7 Scope Resolution :: Scope resolution operator This::That "That is a part of This"

8 Scope Resolution :: Scope resolution operator double Circle::getArea()… "getArea is a part of the Circle class"

9 Modules Copy & Paste is not modular or scalable Need mechanism to import existing classes/code

10 The Process Build: – Preprocess – Compile – Link Run: – Load

11 Separate Compilation Each.cpp has to compile on its own Needs everything declared Hey, this thing is going to exist… – Does not need actual code

12 Linking Linking combines separate object files into one executable Everything better exist – Better only have one copy

13 Finding headers Include with looks in compiler defined directories Include with " " looks in your project, then regular directories

14 Guards Should not have multiple declarations of same class/function/etc… Easy to do by accident with headers Include A and B, B also includes A

15 Guards Preprocessor guard: – #ifndef : if this symbol not defined, read until #endif – #define : define a symbol – CIRCLE_H made up should be unique

16 .h File Class declaration goes in.h file – Clients include.h

17 .cpp File Function implementation must happen once – Dedicated.cpp file Include.h file and other headers NO MAIN!!!

18 Header Rules.h file – Header – declaration of data type – Only include other.h files if necessary.cpp file – Code – implementation of functions – Include necessary headers for declarations – Never include.cpp files in other files

19 Naming Conventions C++ doesn't have one standardized convention I encourage – Class names : CapitalizeEachWord class Person, class BankAccount – File names :.h and.cpp match and match class name Person.h, Person.cpp – Variable names : camelCase Person bob; BankAccount accountOne;

20 Naming Members State (member variables) are (usually) nouns –int hour –string address –int numberOfAuthors Behavior (member functions) are (usually) verbs –void printTime() –int getHour()

21 Shadowing Watch out for shadowed names

22 Shadowing Watch out for shadowed names – Goofy parameter names: – m_ to preceded names of member variables:


Download ppt "Separating Definition & Implementation Headers and Comments."

Similar presentations


Ads by Google