非mumber函數可以被多次刪除,而成員函數只能被聲明一次嗎?這是正確的嗎 ?我的例子似乎是說是的。非成員函數可以多次聲明,而成員函數只能聲明一次?
但是爲什麼?
class Base{
public:
int foo(int i);
//int foo(int i=10); //error C2535: 'void Base::foo(int)' : member function already defined or declared
};
//but it seems ok to declare it multiple times
int foo(int i);
int foo(int i=10);
int foo(int i)
{
return i;
}
int main (void)
{
int i = foo();//i is 10
}
鏈接器如何處理? –
@Captain長頸鹿:鏈接器將實際調用與定義進行匹配;它不依賴於聲明。 _compiler_早些時候使用這些聲明來解析調用。 – MSalters
@all,感謝所有好的回答/評論/鏈接,這件事情現在已經清楚了! – Gob00st