1

C++ (Microsoft Visual Studio) では、mystring.h に main_savitch_4::string::string(const char str[ ] = "") があり、mystring.cpp に追加されています。

main_savitch_4::string::string(const char str[ ] = ""){
    allocated = 0;  
    current_length = 0;
    start = new char[0];
}, which defines the private variables. 

次のエラーが表示されます。

c:\users\erice\documents\c++_2\lab04\rice_lab04_2\rice_lab04_2\mystring.cpp(13): error C2572: 'main_savitch_4::string::string' : redefinition of default parameter : parameter 1
1>          c:\users\erice\documents\c++_2\lab04\rice_lab04_2\rice_lab04_2\mystring.h(88) : see declaration of 'main_savitch_4::string::string'
1>.  

正確には何がうまくいかないのですか?関数の説明で = の意味がわかりません

4

1 に答える 1

5

コンパイラは、関数の宣言と定義にデフォルトのパラメーターがあることを通知しています。定義から削除します。

main_savitch_4::string::string(const char str[ ]) { ... }

関数の説明で = の意味がわかりません

これは、関数に derfault パラメータを提供していることを意味します。例えば、

void foo(int i = 42); // declaration

上記はfoo、パラメーターなしで呼び出すことができることを意味します。

....
void foo(int i) { return i+100; } // definition

// call the function
foo(); // calls it as foo(42);
foo(123);
于 2013-02-12T23:07:45.490 に答える