В C ++ (Microsoft Visual Studio) у меня есть: main_savitch_4 :: string :: string (const char str [] = «») в mystring.h и добавлено в 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>.
Что именно идет не так ??? Я не понимаю, что означает = в описании функции
Компилятор сообщает вам, что у вас есть параметр по умолчанию в объявлении и определении функции. Удалить его из определения:
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);
Других решений пока нет …