こんな感じにpublicにもmainいてもエラーにならないのはどうしてですか?

Main.h

class CMain
{
public:
int main(int argc, char* argv[]);
};

Main.cpp

int main(int argc, char* argv[])
{
return 0;
}