уравнение в объявлении функции

В 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>.

Что именно идет не так ??? Я не понимаю, что означает = в описании функции

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);
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]