📜  可以在C++中重载main()吗?

📅  最后修改于: 2021-05-30 08:08:18             🧑  作者: Mango

预测以下C++程序的输出。

#include 
using namespace std;
int main(int a)
{
    cout << a << "\n";
    return 0;
}
int main(char *a)
{
    cout << a << endl;
    return 0;
}
int main(int a, int b)
{
    cout << a << " " << b;
    return 0;
}
int main()
{
    main(3);
    main("C++");
    main(9, 6);
    return 0;
}

上面的程序编译失败,并产生警告和错误(有关产生的警告和错误,请参见此内容)。在不同的编译器上可能会出现不同的错误。

要在C++中重载main()函数,必须使用class并将main声明为成员 函数。请注意,在C,C++, Java和C#等编程语言中main不是保留字。例如,我们可以声明一个名称为main的变量,请尝试以下示例:

#include 
int main()
{
    int main = 10;
    std::cout << main;
    return 0;
}

输出:

10

以下程序显示了类中main()函数的重载。

#include 
using namespace std;
class Test
{
public:
    int main(int s)
    {
        cout << s << "\n";
        return 0;
    }
    int main(char *s)
    {
        cout << s << endl;
        return 0;
    }
    int main(int s ,int m)
    {
        cout << s << " " << m;
        return 0;
    }
};
int main()
{
    Test obj;
    obj.main(3);
    obj.main("I love C++");
    obj.main(9, 6);
    return 0;
}

该计划的结果是:

3
I love C++
9 6
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”