External Files
Part of the Object Oriented Programming section of Coddy's C++ journey — lesson 1 of 104.
In C++, code is split across multiple files and connected using #include directives.
A separate file MyClass.h
#include <string>
class MyClass {
public:
std::string greet() {
return "Hello from MyClass!";
}
};Include and use it in your main file
#include <iostream>
#include "MyClass.h"
int main() {
MyClass obj;
std::cout << obj.greet() << std::endl;
return 0;
}Output:
Hello from MyClass!Use double quotes "" for your own files and angle brackets <> for system/library headers. The #include directive copies the content of the file into your source code before compilation.
Challenge
EasyInclude the MyClass.h header file in main.cpp, create a MyClass object, and print the result of calling greet().
Print format: Greeting: <result>
Cheat sheet
In C++, code is split across multiple files and connected using #include directives.
Use angle brackets <> for system/library headers:
#include <iostream>
#include <string>Use double quotes "" for your own header files:
#include "MyClass.h"Example header file MyClass.h:
#include <string>
class MyClass {
public:
std::string greet() {
return "Hello from MyClass!";
}
};Using the header in main.cpp:
#include <iostream>
#include "MyClass.h"
int main() {
MyClass obj;
std::cout << obj.greet() << std::endl;
return 0;
}Try it yourself
#include <iostream>
#include <string>
// TODO: Include the MyClass header file
int main() {
std::string testCase;
std::getline(std::cin, testCase);
// TODO: Create a MyClass object and call greet()
std::cout << "Test completed" << std::endl;
return 0;
}This lesson includes a short quiz. Start the lesson to answer it and track your progress.
All lessons in Object Oriented Programming
1Fundamentals of OOP
External FilesC++ Build & CompilationHeader Files & Source FilesNamespaces & ScopeIntroduction to OOP in C++Classes vs ObjectsThe 'this' PointerMethods (Member Functions)Attributes (Data Members)Ctors & Dtors BasicsRecap - Simple Calculator4Class Properties
Instance vs Static MembersGetters and SettersConst Member FunctionsMutable KeywordStatic Methods and VariablesFriend Functions & ClassesRecap - Bank Account Manager7Inheritance
Basic InheritanceInheritance Access LevelsCtor & Dtor Call OrderMethod OverridingVirtual Functions & VTableMultiple InheritanceVirtual InheritanceRecap - Employee Hierarchy2Memory Management
Stack vs Heap MemoryPointers and ReferencesDynamic Memory (new/delete)Smart Pointers in C++RAII in C++Recap - Dynamic Array Manager5Encapsulation
Access Specifiers in C++Access Specifiers In DepthInformation HidingStruct vs ClassNested & Inner ClassesRecap - Student Records System8Polymorphism
Compile vs Runtime PolymorphFunction OverloadingVirtual Functions RevisitedPure Virtual FunctionsAbstract ClassesInterface Design in C++Dynamic Casting & RTTIRecap - Shape Calculator3Constructors & Destructors
Default ConstructorParameterized ConstructorCopy ConstructorMove ConstructorConstructor Init ListsDelegating ConstructorsDestructor Deep DiveRule of Three / Five / ZeroRecap - String Class6Operator Overloading
Intro to Operator OverloadArithmetic Operator OverloadComparison Operator OverloadStream OperatorsAssignment Operator Overload[] and () Operator OverloadType Conversion OperatorsRecap - Matrix Class9Templates
Function TemplatesClass TemplatesTemplate SpecializationVariadic TemplatesSFINAE & Type Traits BasicsRecap - Generic Container