How can we write main as a class in C++?
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:
#include <bits/stdc++.h>
using namespace std;
class main {
public :
void print()
{
cout << "GFG" ;
}
};
int main()
{
main obj;
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:
#include <bits/stdc++.h>
using namespace std;
class main {
public :
void print()
{
cout << "GFG" ;
}
};
int main()
{
class main obj;
obj.print();
}
|
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:
#include <bits/stdc++.h>
using namespace std;
class main {
public :
main()
{
cout << "In constructor main()\n" ;
}
~main()
{
cout << "In destructor main()" ;
}
void print()
{
cout << "GFG\n" ;
}
};
int main()
{
class main obj;
obj.print();
}
|
Output:
In constructor main()
GFG
In destructor main()
Last Updated :
07 Feb, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...