Open In App

How can we write main as a class in C++?

Last Updated : 07 Feb, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
As it is already known that main() method is the entry point in any program in C++, hence creating a class named "main" is a challenge and is generally not possible. But this article explains how to write a class named "main" in C++. What happens when we try to write a class named main? Writing a class named main is not allowed generally in C++, as the compiler gets confused it with main() method. Hence when we write the main class, creating its object will lead to error as it won't consider the 'main' as a class name. Example: CPP
// C++ program to declare
// a class with name main

#include <bits/stdc++.h>
using namespace std;

// Class named main
class main {

public:
    void print()
    {
        cout << "GFG";
    }
};

// Driver code
int main()
{

    // Creating an object of class main
    main obj;

    // Calling the print() method
    // of class main
    obj.print();
}
Output:
Compilation Error in CPP code :- prog.cpp: In function 'int main()':
prog.cpp:17:10: error: expected ';' before 'obj'
     main obj;
          ^
prog.cpp:18:5: error: 'obj' was not declared in this scope
     obj.print();
     ^
How to successfully create a class named main? When the class name is main, it is compulsory to use keyword class or struct to declare objects. Example: CPP
// C++ program to declare
// a class with name main

#include <bits/stdc++.h>
using namespace std;

// Class named main
class main {

public:
    void print()
    {
        cout << "GFG";
    }
};

// Driver code
int main()
{

    // Creating an object of class main
    // Add keyword class ahead of main
    class main obj;

    // Calling the print() method
    // of class main
    obj.print();
}
Output:
GFG
How to write a constructor or destructor named main? Writing a constructor or destructor named main is not a problem, as it means the class name must be main. We have already discussed how to make a class named main above. Example: CPP
// C++ program to declare
// a class with name main

#include <bits/stdc++.h>
using namespace std;

// Class named main
class main {

public:

    // Constructor
    main()
    {
        cout << "In constructor main()\n";
    }

    // Destructor
    ~main()
    {
        cout << "In destructor main()";
    }

    void print()
    {
        cout << "GFG\n";
    }
};

// Driver code
int main()
{

    // Creating an object of class main
    // Add keyword class ahead of main
    class main obj;

    // Calling the print() method
    // of class main
    obj.print();
}
Output:
In constructor main()
GFG
In destructor main()

Next Article
Practice Tags :

Similar Reads