C++类中可以有main()?

wang19891106 2012-09-20 05:04:04
最近看同学学JAVA,在一个类中定以了一个main()就可以运行?C++中类中可以有main()吗?一直没有遇到过。
...全文
495 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxixing 2013-03-29
  • 打赏
  • 举报
回复
只能有一个入口函数main,而且必须定义成全局函数; class test里面的main只是test类中的局部成员函数。 当局部成员函数的名字与全局函数的名字相同时,会优先使用局部函数。 一个是全局的入口函数。 一个是类里的局部成员函数。 两个是完全不一样的。
weikaicai123 2012-09-21
  • 打赏
  • 举报
回复
前面有点错,是c++类中,不是c++中
weikaicai123 2012-09-21
  • 打赏
  • 举报
回复
c++中可以有main但这个main再不是主函数,意义已经变了。
SKATE11 2012-09-21
  • 打赏
  • 举报
回复
绝对不行 main()是入口函数 如果它包含在类里面了 那么类的作用域肯定大于main() 这样的话谁去调用类啊
旅行着 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
完全可以

C/C++ code
class test
{
public:
int main()
{
puts( "test::main" );
return 0;
}
};
int main()
{
test x;
x.main();
}
[/Quote]这样可以吗,不理解,不是只能有一个入口函数main嘛
阿七哥 2012-09-20
  • 打赏
  • 举报
回复
c++类的main和类外的main是不一样的,最终还是得用类外的main函数作为入口。而在java里,类的main函数是入口,通常这样的定义:public static void main(String[] args)
wang19891106 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
完全可以

C/C++ code

class test
{
public:
int main()
{
puts( "test::main" );
return 0;
}
};
int main()
{
test x;
x.main();
}
[/Quote]
那个类中的main()是不是就是一个普通的函数(只是名字有点吓人),没有什么特殊的功能
5t4rk 2012-09-20
  • 打赏
  • 举报
回复
不可以啊。。要知道c++不是像java那样完全面向对象。。。

所以main函数式不可以放在类里面的。。。

是程序的入口、、、


HAN-Kai 2012-09-20
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
class test
{
public:
int main()
{
puts( "test::main" );
return 0;
}
};
int main()
{
test x;
x.main();
system("pause");
}

测试了2楼的代码,果然可以用,不过意义不一样,输出是test::main。其实只是把test类中的main当成一个成员函数而已,入口还是在外面的main,而java中的入口直接就是那个包含main的类。呵呵。差别还是比较大的。
mujiok2003 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
最近看同学学JAVA,在一个类中定以了一个main()就可以运行?C++中类中可以有main()吗?一直没有遇到过。
[/Quote]

因为java中没有free function,程序的入口函数只能放在类中。
fzamygsd 2012-09-20
  • 打赏
  • 举报
回复
即使有,意义也不一样。。。
微型蚂蚁 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

完全可以
C/C++ code
class test
{
public:
int main()
{
puts( "test::main" );
return 0;
}
};
int main()
{
test x;
x.main();
}
[/Quote]
呵呵
wintree 2012-09-20
  • 打赏
  • 举报
回复
不可以!!!
healer_kx 2012-09-20
  • 打赏
  • 举报
回复
Java学多了就这样了。。。
  • 打赏
  • 举报
回复
完全可以
class test
{
public:
int main()
{
puts( "test::main" );
return 0;
}
};
int main()
{
test x;
x.main();
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧