C++編のデフォルトパラメータと関数のリロード

1101 ワード

デフォルトパラメータの関数1関数を呼び出すときにすべてのパラメータを指定しなくてもよい2指定しなくてもよいパラメータにデフォルト値を与える
    void func(int a = 1,int b ,int c = 3,int d = 4);//error
    void func(int a ,int b ,int c = 3,int d = 4);//ok
    //void func(int  ,int  ,int  = 3,int = 4);   
            :
    func(10,15,20,30);//ok         
    func();//error :  a     
    func(12,2);//ok   c d   
    func(2,15, ,20);//error             

関数のリロード:2つ以上の関数は同じ関数名を取りますが、パラメータの個数やタイプが異なり、コンパイラは実パラメータとパラメータのタイプと個数の最適な一致に基づいて、どの関数を呼び出すかを自動的に決定します.これが関数のリロードです.注意2点:1 2つ以上の関数は同じ関数名をとり、2パラメータの個数またはタイプが異なる場合、1組のリロード関数(デフォルトパラメータ付き)が同じ実パラメータの個数の呼び出しを許可すると、呼び出しの二義性が発生し、エラーが発生します.たとえば、次のようにします.
    void func(int);
    void func(int , int = 4);
    void func(int = 3, int = 4);
    func(7);//error,                    
    func(20,30);//                ?       ,    。

一般的なC言語ヘッダファイルフォーマット
#ifndef _FUNC_     //         
#define _FUNC_
#ifdef _cplusplus    //      c++ ,   c               ,        
extern "C" {
#endif

...
void func();
...

#ifdef _cplusplus
}
#endif
#endif