一、基本概念
函數(shù)重載就是在同一個作用域內(nèi),允許存在參數(shù)不同的同名函數(shù)。
1. 參數(shù)個數(shù)不同
例子:
void func(int a, int b, int c)
{
...
}
void func(int a, int b)
{
...
}
2. 參數(shù)類型不同
例子:
void func(int a, int b)
{
...
}
void func(int a, double b)
{
...
}
void func(double a, int b)
{
...
}
void func(double a, double b)
{
...
}
3. 參數(shù)類型的順序不同
例子:
void func(int a, double b)
{
...
}
void func(double a, int b)
{
...
}
注意這里的順序指的是參數(shù)類型的順序,而不是參數(shù)名的順序。
比如下面的例子就不構(gòu)成函數(shù)重載。
void func(int a, double b)
{
...
}
void func(int b, double a)
{
...
}
二、函數(shù)名修飾規(guī)則
C++ 支持函數(shù)重載的本質(zhì),其實是因為 C++ 特殊的函數(shù)名修飾規(guī)則。
我們知道 C 語言是不支持同名函數(shù)的,而 C++ 得益于其特殊的函數(shù)名修飾規(guī)則,編譯后的函數(shù)名不再是單純的函數(shù)名字,而是會加入?yún)?shù)的信息,類似func_int_double
這種。具體的函數(shù)名修飾規(guī)則根據(jù)平臺會有所不同,這里不作深究。文章來源:http://www.zghlxwxcb.cn/news/detail-612741.html
另外,只有返回類型不同是不構(gòu)成函數(shù)重載的,因為 C++ 的函數(shù)名修飾規(guī)則不包含返回類型的信息。文章來源地址http://www.zghlxwxcb.cn/news/detail-612741.html
到了這里,關(guān)于【C++入門】函數(shù)重載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!