use*_*070 1 c++ function function-declaration
在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.
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
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>.
Run Code Online (Sandbox Code Playgroud)
究竟出了什么问题?我不明白函数描述中的含义是什么
编译器告诉您在函数的声明和定义中有默认参数.从定义中删除它:
main_savitch_4::string::string(const char str[ ]) { ... }
Run Code Online (Sandbox Code Playgroud)
我不明白函数描述中的含义是什么
这意味着您要为函数提供derfault参数.例如,
void foo(int i = 42); // declaration
Run Code Online (Sandbox Code Playgroud)
以上意味着您可以在foo没有参数的情况下调用:
....
void foo(int i) { return i+100; } // definition
// call the function
foo(); // calls it as foo(42);
foo(123);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |