//
// main.cpp
// day01-Function
//
// Created by aiqiyisheng on 15/1/11.
// Copyright (c) 2015年 HYR. All rights reserved.
//
#include <iostream>
using namespace std;
//在C语言中 不写返回值类型 则默认返回整型int
/*
*
fa();//声明 声明的时候参数可以不写,定义的时候可以任意给参数
fa(int a,int b){//定义
//函数体
}
*
*/
/*
在C++中的函数一定要写返回值类型,如果没有返回值,则写void空的返回值
C++中的参数如果你不写的话,会默认给你一个void空参数
*/
//英雄打怪后增加经验的函数
int addExp(int heroExp,int addExp){
return heroExp + addExp;
}
//打打怪就会增长百分比的经验
int addExp2(int heroExp,double addExpPtr){
return heroExp * (1 + addExpPtr);
}
/*
void addExp2(int heroExp,double addExpPtr){
//重载跟返回值类型无关
}
*/
/*
* 方法重载
*
方法名相同,参数列表不同(参数个数,参数类型,参数顺序) 这样就构成方法重载了 跟返回值类型无关
编译器在编译的时候遇到相同名字的方法,编译器可能会自己生成一个方法名,
例如:int addExp(int heroExp,int addExp)可能会生成这样的方法名int addExp_i_i()....
int addExp(int heroExp,double addExpPtr)可能会生成这样的方法名int addExp_i_d()...
在调用的时候编译器会根据你给的参数去找对应的方法
*
*
*/
/*
重写 :子类重写父类的方法
*/
int addExp(int heroExp,double addExpPtr){
return heroExp * (1 + addExpPtr);
}
//告诉编译器 该方法按照“C”语言的方式处理 (不会帮你重命名)
extern "C"
void test(){
cout << "extern \"C\" 的作用" << endl;
}
//主函数
int main(int argc, const char * argv[])
{
int heroExp = 1000;
cout << addExp(heroExp, 100) << endl;
cout << addExp2(heroExp, 0.5) << endl;
cout << addExp(heroExp, 0.5) << endl;
test();
return 0;
}
1100 1500 1500 extern "C" 的作用 Program ended with exit code: 0
#include <iostream>
using namespace std;
//定义函数 函数重载
//如果找不到匹配的类型,C++会找一个相对合适的类型
//同样 如果找到很多合适的类型 那也不知道该执行那一个,例如注释掉int的方法
//void fa(char ch){ cout << "fa(char ch)" << endl;}
//void fa(short st){ cout << "fa(short st)" << endl;}
void fa(int it){ cout << "fa(int it)" << endl;}
void fa(long lg){ cout << "fa(long lg)" << endl;}
void fa(float ft){ cout << "fa(float ft)" << endl;}
void fa(double de){ cout << "fa(double de)" << endl;}
int main(){
//声明变量
char ch;
short st;
int it;
long lg;
float ft;
double de;
//
fa(ch);
fa(st);
fa(it);
fa(lg);
fa(ft);
fa(de);
return 0;
}
fa(int it) fa(int it) fa(int it) fa(long lg) fa(float ft) fa(double de) Program ended with exit code: 0
原文地址:http://blog.csdn.net/love9099/article/details/42611859