#include <iostream>
// volume of a cube
int volume(int s)
{
return s*s*s;
}
// volume of a cylinder
double volume(double r, int h)
{
return 3.14*r*r*static_cast<double>(h);
}
// volume of a cuboid
long volume(long l, int b, int h)
{
return l*b*h;
}
int main()
{
std::cout << volume(10);
std::cout << volume(2.5, 8);
std::cout << volume(100, 75, 15);
}
函數重載的定義: 函數重載是指在同一作用域內,可以有一組具有相同函數名,不同參數列表的函數,這組函數被稱為重載函數。、
所以原則就是相同的函數名,不同的參數列表。返回值不能作為重載依據。
在C 類的繼承中,子類會繼承父類的函數. 當你用子類聲明一個對象後,調用這個對象裏的一個方法,恰好這個方法是從父類繼承來的,那麼將直接從父類調用該方法。然而,如果你在子類裏對也定義了同名的方法,那麼將從子類調用該方法,而不是從父類。而且父類的方法將被完全忽略。這就是函數重載的原則。
這是函數重載的一個例子。
函數重載的原則是,兩個函數功能很類似,隻有一點點差別(比如參數類型)。如果兩個函數實現的功能相差較大,則應該取不同的名字。