2015-10-24 41 views
-2

如果我有2個函數,這兩個函數應該是不同的,這取決於我放入的參數,對不對?C++重載函數的問題?

#include "sub_string.h" 


bool is_prefix(const char a[], const char b[]){ 
    return a[0]==b[0]? true : false; 
} 

bool is_prefix(const char a[], const char b[], int n){ 

    if(n==1){ 
    return is_prefix(a,b); 
    } 

    return false; 

} 
+0

什麼不符合你的期望? – WhiteViking

回答

0
bool result = is_prefix(array1, array2); 

將調用的第一個版本。

bool result = is_prefix(array1, array2, number); 

將調用重載版本。

調用哪個版本的is_prefix()取決於調用中使用的參數。只要這兩個函數根據參數數量和/或類型而不同,編譯器就知道要調用哪一個函數(但請記住,返回類型不算超載)。