C++ 函数的重载

一、普通函数的重载

# include<iostream>
using namespace std;
void func(int);
void func(float);
void func(double);
int main()
{
	int a=4;
	float b=3.1;
	double c=3.1234;
	cout<<"a的值为:"<<a<<endl;
	cout<<"b的值为:"<<b<<endl;
	cout<<"c的值为:"<<c<<endl;
	cout<<"a的平方为:";
	func(a);
    cout<<"b的平方为:";
	func(b);
    cout<<"c的平方为:";
	func(c);
	//我们可以将一个相同名字但是不同类型的函数,重复调用多次,来处理不同类型的数据
	return 0;
}
void func(int i)
{
	cout<<i*i<<endl;
}
void func(float i)
{
	cout<<i*i<<endl;
}
void func(double i)
{
	cout<<i*i<<endl;
}

运行结果:

二、成员函数的重载

# include<iostream>
using namespace std;
class cube
{
public:
	void sum();
	void sum(int i,int j);
private:
	int x;
	int y;
};
int main()
{
	cube a;
	a.sum(2,3);
	a.sum();
	return 0;
}
void cube::sum()
{
	cout<<"x的立方为:"<<x*x*x<<"\t"<<"y的立方为:"<<y*y*y<<endl;
}
void cube::sum(int i,int j)
{
	x=i;
	y=j;
	cout<<"x的值为:"<<x<<"\t"<<"y的值为:"<<y<<endl;
}

三、构造函数的重载

# include<iostream>
using namespace std;
class rectangel
{
public:
	rectangel(){cout<<"构造一个长方形a!\n";}
	rectangel(int l,int w){length=l;width=w;cout<<"长方形的面积为:"<<length*width<<endl;}
	rectangel(int l,int w,int h){length=l;width=w;height=h;cout<<"长方形的体积为:"<<length*width*height<<endl;}
private:
	int length;
	int width;
	int height;
};
int main()
{
	rectangel a;
	rectangel b(3,4);
	rectangel c(3,4,5);
	return 0;
}

运行结果:

时间: 2024-08-05 14:43:56

C++ 函数的重载的相关文章

[C++] 用Xcode来写C++程序[5] 函数的重载与模板

用Xcode来写C++程序[5] 函数的重载与模板 此节包括函数重载,隐式函数重载,函数模板,带参数函数模板 函数的重载 #include <iostream> using namespace std; int operate (int a, int b) { return (a * b); } double operate (double a, double b) { return (a / b); } int main () { int x = 5; int y = 2; double n

函数的重载(overload)

重载的概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可.重载的特点:与返回值类型无关,只看参数列表.重载的好处:方便于阅读,优化了程序设计.重载示例://返回两个整数的和int add(int x,int y){return x+y;}//返回三个整数的和int add(int x,int y,int z){return x+y+z;}//返回两个小数的和double add(double x,double y){return x+y;} 什么时候用重载 当

C++的函数名重载

#include <iostream> using namespace std; int func(int c) { cout<<"int func(int c)"<<endl; } int func(char c) { cout<<"int func(char c)"<<endl; } //函数的重载就是函数名相同,根据参数的类型决定调用哪个函数 int main() { int m; char n; f

函数 的 重载 和 函数 模版

1 //函数的重载对一个函数名 赋予它 多重意义 就成为函数的重载 2 //在函数重载的基础上 我们仍然对那种 实现功能相似 3 // 但是 函数类型和形参不确定的 情况下 产生了 函数 模版 4 #include<iostream> 5 using namespace std; 6 template<class T> //模版声明 其中 T 为类型参数 7 T max(T a,T b,T c) //定义一个 通用模版 8 { 9 if(b>a) 10 a=b; 11 if(

C++ 成员函数的重载与覆盖与隐藏

重载与覆盖 成员函数被重载的特征: (1)相同的范围(在同一个类中): (2)函数名字相同: (3)参数不同: (4)virtual 关键字可有可无. 覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类): (2)函数名字相同: (3)参数相同: (4)基类函数必须有 virtual 关键字. 函数 Base::f(int)与 Base::f(float)相互重载,而 Base::g(void) 被 Derived::g(void)覆盖. #include <ios

C++函数的重载,覆盖和隐藏(——高质量编程)

函数重载概念 只有C++才有重载的概念,C语言没有. 靠行参列表的不同来区别不同的重载函数, 若是全局函数和成员函数同名时,不算重载,因为它们的作用域不同,所以成员函数会将全局函数给隐藏(遮蔽)了. 成员函数的重载,覆盖和隐藏 重载发生在相同的作用域中,而覆盖则发生在不同的作用域中 重载: 相同的作用域 函数的名字相同 函数的形参列表,顺序,类型,个数不同 virtual可有可无 覆盖: 作用域不同,属于不同的类中 函数的名字相同 形参列表相同 基类必须是虚函数

【C++】编写一个简单的函数实现重载。

//编写一个简单的函数实现重载. #include <iostream> using namespace std; int max(int a,int b) { return a>b?a:b; } int max(int a,int b,int c) { int x=max(a,b); return max(x,c); } double max(double a,double b) { return a>b?a:b; } int main() { cout<<"

javascript 中break、 continue、函数不能重载

在javascript中,break与continue有着显著的差别. 如果遇到break语句,会终止最内层循环,无论后面还有多少计算. 如果遇到continue,只会终止此次循环,后面的自循环依然执行. var num = 0; for (var k = 0; k < 3; k++) { for (var i = 0; i < 3; i++) { for (var j = 0; j < 3; j++) { if (i === 1 && j === 1) { break;

C++:类成员函数的重载、覆盖和隐藏区别?

#include <iostream> class A { public: void func() { std::cout << "Hello" << std::endl; } void func(int k) { } }; class B : public A { public: using A::func; // 把这句注释掉试试,嘿嘿 void func(int i) { } }; int main() { B b; b.func();//编译

函数模板,函数模板重载,可变参数模板,函数模板覆盖,通过引用交换数据

 1.函数模板初级,如果想使用模板,需要实例化,实例化的方式是加上<数据类型> #include <iostream> //函数模板可以对类型进行优化重载,根据类型会覆盖 //如果仍然要使用模板函数,需要实例化 template<class T> T add(T a, T b) { std::cout << "T add " << std::endl; return a + b; } int add(int a, int