Download presentation
Presentation is loading. Please wait.
Published byTabitha Sharp Modified over 9 years ago
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:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.