2017-09-19 11 views
-1

私はこれまで、デフォルトのパラメータを置く正しい場所は宣言ファイル(* .h)です。例えばだから、この場合にはC++関数のデフォルトの引数を定義する正しい方法

TEST.CPP

void print_a(int a){ 
    std::cout << a; 
} 

TEST.H

void print_a(int a = 5); 

私は3番目のファイルを持つことができます。どこでprint_a()をパラメータの有無にかかわらず実行できます。

main.cppに

#include test.h 
int main(void) 
{ 
    print_a(); 
    print_a(6); 
    return 0; 
} 

問題があり、どのような内部のTEST.CPP私は、パラメータを指定せずprint_aを使用したい他の機能を持っている場合は?コンパイラは、関数の引数が少なすぎると言っています。

どうやってそれをしますか?

+6

'test.c'に' test.h'を含めましたか? – interjay

+3

'test.cpp'の先頭に' #include "test.h"があることを確認していますか? – Thebluefish

+0

[ここでうまくいきます](https://wandbox.org/permlink/MI3puT4KpU8u1Z6A) – NathanOliver

答えて

2

test.cppに関数の宣言をデフォルト値で指定する必要があります。これを行う最善の方法は、test.cpp内の#include test.hです。

関連する問題