In this chapter we shall look at different types of classes available in C++
- Global Classes in C++
- Local Classes in C++
- Nested Classes in C++
- Anonymous classes in C++
1. Global Classes in C++
- Class defined outside of all the functions is called as Global Class.
- The objects can be created anywhere in the program.
Example:
#include <iostream> using namespace std; class MyClass { public: void display(); }; void MyClass::display() { cout<<"In display function"<<endl; } int main(void) { MyClass obj; obj.display(); }
Output:
In display function
2. Local Classes in C++
- Classes created inside a function is called as local classes.
- The object can be created inside of that function.
- Lifetime is till the execution of the function.
- Static data members should not be present.
- Static member functions can be present.
Example:
#include <iostream> using namespace std; int main(void) { class MyClass { public: void display() { cout<<"In display function"<<endl; } }; MyClass obj; obj.display(); }
Output:
In display function
3. Nested Classes in C++
- Classes inside a class is called as nested class.
Example:
#include <iostream> using namespace std; class MyClass { public: void outer_display() { cout<<"In display function from outer class"<<endl; } class MyClassInner { public: void inner_display() { cout<<"In display function from inner class"<<endl; } }; }; int main(void) { MyClass obj; obj.outer_display(); MyClass :: MyClassInner inner_obj; inner_obj.inner_display(); }
Output:
In display function from outer class In display function from inner class
4. Anonymous classes in C++
- Classes with no name are called as Anonymous classes.
- These classes cannot have constructor or destructors.
- Anonymous class cannot sent arguments to functions.
- They also cannot be used as return values from functions.
#include <iostream> using namespace std; class { public: void display() { cout<<"In display function"<<endl; } }obj; int main(void) { obj.display(); }
Output:
In display function