В C++ (Microsoft Visual Studio), у меня есть: main_savitch_4 :: строка :: строка (Const символ ул [] = "") в 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 :: строка :: строки (символ * запуска = "") { \t = 0; \t current_length = 1; \t начало = новый символ [1]; } Я получаю следующую ошибку:> c: \ users \ erice \ documents \ C++ _ 2 \ lab04 \ rice_lab04_2 \ rice_lab04_2 \ mystring.cpp (13): ошибка C2572: 'main_savitch_4 :: string :: string': переопределение параметра по умолчанию: параметр 1 1> c: \ users \ erice \ documents \ C++ _ 2 \ lab04 \ rice_lab04_2 \ rice_lab04_2 \ mystring.h (88): см. объявление 'main_savitch_4 :: string :: string' 1> 1> Сборка НЕИСПРАВНО. Есть предположения? – user963070
@ user963070 - та же ошибка. Вы устанавливаете параметр по умолчанию в определении функции, а также в ее декларации. Делайте это только в декларации. – juanchopanza