目录

1.main普通函数

2.main解释

3.main成员函数


在本系列的前面5篇文章中,我们探讨了函数重载的各个方面。包括普通函数,成员函数,父子类的函数,等等。
那做为程序的入口,main函数本身,能否重载呢?

1.main普通函数

先参考下面程序的结果,main函数做为C++函数,看看是否可以重载

#include <iostream>
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;
}

编译失败。visual studio提示:
error C2665: “main”: 4 个重载中没有一个可以转换所有参数类型

2.main解释

从前面例子看出,main做为普通函数,是无法进行重载的。
如果需要在C++中实现main函数重载必须使用类,并且将main做为它的成员函数。
注意:在C, C++, Java, C#中,main并不是被保留的关键字或特殊词。

例如,我们可以声明一个名字为main的变量

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

输出:
10

3.main成员函数

下面程序演示了在一个类中实现main函数的重载。

#include <iostream>
using namespace std;
class Test
{
public:int main(int s){cout << s << "\n";return 0;}int main(const char* s){cout << s << endl;return 0;}int main(int s, int m){cout << s << " " << m;return 0;}
};
int main()
{Test obj;obj.main(33);obj.main("Hello World");obj.main(99, 66);return 0;
}

输出结果:
33
Hello World
99 66

C++函数重载(6) - main函数重载相关推荐

  1. 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

    文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...

  2. c++语言程序中,要调用的函数必须在main()函数中定义,惠州学院C++考试复习题

    惠州学院C++复习题 一.选择题 1.C++的源文件的扩展名是_____C____. A.h B.obj C.cpp D.exe 2.下列选项能够作为C++变量名的是___C____. A.false ...

  3. Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。

    Linux基础知识学习 C语言作业:将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印. #include <stdi ...

  4. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数

     1.指针数组 数组里面的每个元素都是指针. 指针数组的案例如下: 易犯错误: 2.数组指针 归根结底还是指针,只是取*的时候能够取出一整个数组出来. 数组指针:(一个指针指向了数组,一般和二维数 ...

  5. python程序一定要有主函数_Python 没有main函数的原因

    毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提"Python 的 main 函数"."建议写 main 函数"-- 有些人 ...

  6. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为參数,泛型函数...

     1.指针数组 数组里面的每一个元素都是指针. 指针数组的案比例如以下: 易犯错误: 2.数组指针 归根结底还是指针,仅仅是取*的时候可以取出一整个数组出来. 数组指针:(一个指针指向了数组.一般 ...

  7. mysql main函数_关于main()函数的小技巧

    话说,有这样一道据说是月薪2W的笔试题: #include stdio.h void print() { * } void main() { } 要求在*部分写代码使整个程序运行后输出"he ...

  8. python主函数参数_Python main函数、命名行参数

    1,main函数 python是基于脚本顺序执行,没有main函数的概念,但是我们可以通过关键字 __name__来模拟. __name__:模块名,当执行文件和当前模块一致时,__name__的值等 ...

  9. java中的主函数_java中main函数解析

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

最新文章

  1. 经过不断努力 终于获得“推荐博客”的荣誉
  2. Python有哪些是必须学的运算符?
  3. Linux基础 —— 操作系统简介
  4. 深圳php就业,传智播客深圳校区PHP04期毕业15个工作日就业率67.74%
  5. 天天有毒_鸡汤文案类小程序源码
  6. Div+CSS布局入门教程(二) 写入整体层结构与CSS
  7. on the way
  8. 【评分】个人作业——软件工程实践总结作业
  9. pl/mysql安装_PL/SQL环境安装设置
  10. 【pwn】记一道shellcode侧信道攻击
  11. 通过isapi协议抓拍图片
  12. 利用函数wavread对语音信号进行采样_VoNR与VoLTE实现高清语音的奥秘,就是从小小的采样频率开始...
  13. stanza和DBPedia的安装与使用
  14. mysql excel 同步数据_mysql导入excel数据
  15. 电商网站的云配置推荐
  16. ATCA基础入门学习总结
  17. NET开源 .NET Open Source Developer Projects
  18. 【THUWC2019模拟2019.1.18】Counting
  19. webrtc ns模块代码公式详细解读
  20. 关于矩阵的英文词组 (转)

热门文章

  1. STM32学习【2】STM32F103C8T6串口2USART2程序
  2. chrome点击书签栏书签_如何显示(或隐藏)Google Chrome书签栏
  3. numpy数组——轴向操作及通用函数
  4. tensorflow中的ops(或者说op)的理解
  5. 会声会影如何去除视频黑边
  6. 流行的软件测试工具介绍
  7. vivado基本开发流程
  8. vue中v-for的用法
  9. 零知识证明学习(三)—— 非交互式零知识证明(zkSNARKs)
  10. 微信公众平台的运营管理