📜  我们如何在C ++中将main编写为类?

📅  最后修改于: 2021-05-31 22:41:17             🧑  作者: Mango

众所周知,main()方法是C++中任何程序的入口点,因此创建一个名为“ main”的类是一项挑战,通常是不可能的。但是本文将说明如何在C++中编写一个名为“ main”的类。

当我们尝试编写一个名为main的类时会发生什么?
在C++中,通常不允许编写名为main的类,因为编译器会将它与main()方法混淆了。因此,当我们编写主类时,创建其对象将导致错误,因为它不会将“主”视为类名。
例子:

// C++ program to declare
// a class with name main
  
#include 
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();
}

输出:

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();
     ^

如何成功创建一个名为main的类?
当类名是main时,必须使用关键字class或struct声明对象。

例子:

// C++ program to declare
// a class with name main
  
#include 
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();
}
输出:
GFG

如何编写一个名为main的构造函数或析构函数?
编写名为main的构造函数或析构函数不是问题,因为这意味着类名称必须为main。我们已经在上面讨论了如何创建一个名为main的类。

例子:

// C++ program to declare
// a class with name main
  
#include 
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();
}
输出:
In constructor main()
GFG
In destructor main()
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”