Java程序员学习C++之函数

头文件function.h

#ifndef _FUNCTION_H_ //头文件嵌套,会出现函数被重复定义的问题,加上此可以保证头文件不会被定义多次
#define _FUNCTION_H_

//#pragma once //也可以使用此来防止多次的包含

/*
	先声明一个函数,后面再定义(声明可以很多次,定义只能一次)
	该函数的定义必须写在源文件中,不然若有多个文件include该头文
	件时在链接是会报标识符重复的错误
 */
void my_fun(int, int);
void my_fun(int);

/*
	或者写成内联函数,内联函数会直接将函数内容替换到调用的地方
	就不会出现链接时标识符重复的错误
*/
inline void my_fun2()
{
	//cout << "fun2" << endl;
}

/**************************************************
 除了inline函数之外头文件中不能有任何形式的函数定义
***************************************************/

#endif

头文件:function2.h

#include "function.h"

源文件:main.cpp

#include <iostream>		//<>  系统库中检索头文件
#include "function.h"	//""  在当前工程中检索,若不存在,则检索系统库中的头文件
using namespace std;

//编译的过程分为两步:编译和链接
//编译是将cpp文件编译生成obj文件
//链接是将目标文件(obj)以及所需的库文件彼此连接生成可以执行的文件(exe文件)
int main()
{
	my_fun(1,2);
	my_fun(1);//虽然my_fun(int,int)定义了默认参数,但是该函数还是调用my_fun(int)
	my_fun2();
	return 0;
}

源文件:main2.cpp

#include "function.h"
#include "function2.h"
#include <iostream>
using std::cout;
using std::endl;

void doto()
{
	my_fun(4,2);
	my_fun2();
}

void my_fun(int a, int b=10) //默认参数只能是最后面的一个或者多个,如果是间隔出现,就不知道用哪些参数作为默认参数了
{
	cout << __FUNCTION__ << "(int,int)" << endl;
}

void my_fun(int a)
{
	cout << __FUNCTION__ << "(int)" << endl;
}

//返回值不作为函数的标识
//int my_fun(int a, int b)
//{
//	cout << __FUNCTION__ << endl;
//}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 10:14:31

Java程序员学习C++之函数的相关文章

Java程序员学习C++之函数指针

函数指针的定义: 头文件:function.h //该头文件定义了接口,在实际的源文件中定义了模板方法 //后续的调用类只需要实现覆盖before,process,after方法即可实现模板方法的回调 /* extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中, 提示编译器遇到此变量或函数时,在其它模块中寻找其定义. */ extern void(*before)(); extern void(*process)(int,int); extern void(*after)();

【Python】Java程序员学习Python(五)— 函数的定义和使用

不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍,方法的目的还是重用和封装 一.方法的定义 方法的定义使用关键词def来定义,定义格式如下: def 方法名(参数定义): 方法体 方法名:方法名的规范同变量名规范一样 参数定义:比较复杂,后面会进行讲解 冒号:这个类似于Java的{},必不可少 方法体:方法实现的功能在此定义即可 简单的例子: #定

Java程序员学习的6个小技巧

Java程序员学习的6个小技巧 知识改变命运,对于Java程序员来说,技术不断更新,只有及时充电,才能不被市场淘汰.北京Java培训机构分享Java程序员学习的6个小技巧兄弟连IT教育作为全国最大的PHP培训机构,迄今已有10年的教育历史,7大特色课程:PHP教程.安卓培训.JAVAEE+大数据.UI设计.HTML5培训.云计算架构师,全栈工程师培训,在目前IT市场特别火,每门课程都由名师牵头,以认认真真的态度做教育,培养的学员过万,在学员心中树立了良好的口碑. 1.一定要看书 现在学习Java

Java程序员学习之路

1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它.该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的<Thinking in C++> 在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,<Thinking in Java>被评为1999年Java

聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

阿里社招面试都问什么? 和之前一样,文章一上来,我们先来谈谈阿里的社招面试都问什么,其实这个话题并不是什么秘密,所有来阿里面试过的同学,都能回答一二. 两年前的时候,笔者在文章里是这么回答的. 这个是让LZ最头疼的一个问题,也是群里的猿友们问的最多的一个问题. 说实话,LZ只能隐约想起并发.JVM.分布式.TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住.而且就算LZ记住了,也告诉你了,你也背会了,但LZ觉得,在面试中,你被问到一模一样问题的可能性依然很小. 甚至,就算你运气好被问到了

Java程序员学习一天半C++的感想

大学期间,学了一学期的C语言,当然包括学习数据结构时,用的也是C语言.当时刚刚接触计算机,对于编程更是一无所知.上课学习学习,偶尔会照着书上敲一下代码.大二下学期,就丢掉了不用了.最近由于工作的需要,要使用Java Native Interface,所以就学习了1天半的C++,对C++有了一点点的了解,写一下自己的理解. 一天半时间,也学不多少东西,我主要就搞明白了下面几个问题: 1)指针 这么多年了,还记得在C语言时,最难以理解的,应该属于指针了.还记得谭浩强的那本C语言书(书名是啥,真的忘了

java程序员学习c++的感觉

大学编程课期间, 学了一学期的C语言,当然包括学习数据结构时,用的也是C语言.当时刚刚接触计算机,对于编程更是一无所知.上课学习学习,偶尔会照着 书上敲一下代码.大二下学期,就丢掉了不用了.最近由于工作的需要,要使用Java Native Interface,所以就学习了两天半的C++,对C++有了一点点的了解,写一下自己的理解. AD: 两天半时间,也学不了多少东西,我主要就搞明白了下面几个问题: 1)指针 这么多年了,还记得在C语言时,最难以理解的,应该属于指针了.还记得谭浩强的那本C语言书

【Python】Java程序员学习Python(二)— 开发环境搭建

巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. 一.准备Java环境 我已经说过了,其实我是一个Java程序员,所以学习过程中会有很多Java相关的内容和对比.先介绍下我的基本情况 jdk1.8 eclipse即可,版本最新的 怎么安装java,配置环境变量什么的,我都不会再说了,我这不是小白教程,我相信具备一定的能力. 二.准备Python环

写给自己的Java程序员学习路线图

如下是我做开发这几年经常使用一些技术和工具,当然这些技术也都是需要加强的(有些是我一直使用的,不过不深入,有些内部的原理等等不是很清楚) 前端部分: 1)HTML:网页的核心语言,构成网页的基础 2)CSS:使网页更加丰富多彩灿烂的利器 3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互 4)HTML DOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页 5)HTML BOM:与浏览器交互不可或缺的工具 6)JavaScript库,主要是:jQuery及其插件