In file included from ReadWrite.cpp:4: ReadWrite.h:4:39: error: ISO C++ forbids declaration of ‘parameter’ with no type [-fpermissive] 4 | void my_cpp_function(const & std::string fullName); | ^~~~~~ ReadWrite.h:4:34: error: expected ‘,’ or ‘...’ 4 | void my_cpp_function(const & std::string fullName);
时间: 2024-02-10 14:09:10 浏览: 122
这个错误是因为你在函数声明中的参数类型不正确。正确的写法应该是:
```
void my_cpp_function(const std::string& fullName);
```
你需要将代码中的`&`替换成`const std::string&`,这样才能正确地声明一个string类型的参数。
相关问题
➜ fortranRW g++ -shared -fPIC -o libmy_cpp_code.so ReadWrite.cpp In file included from ReadWrite.cpp:4: ReadWrite.h:4:34: error: ISO C++ forbids declaration of ‘string’ with no type [-fpermissive] 4 | void my_cpp_function(const & string fullName); | ^~~~~~ ReadWrite.h:4:41: error: expected ‘,’ or ‘...’ before ‘fullName’ 4 | void my_cpp_function(const & string fullName); | ^~~~~~~~
这个错误是因为你在函数声明中的参数类型不正确。正确的写法应该是:
```
void my_cpp_function(const std::string& fullName);
```
你需要将代码中的`& string`替换成`const std::string&`,这样才能正确地声明一个string类型的参数。
ReadWrite.cpp:20:16: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 20 | fullName = "/mnt/d/Code/fortranRW/TEST.DATJ"; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个编译警告,意思是ISO C++不允许将字符串常量转换为`char*`类型。在C++中,字符串常量是不可变的(immutable),而`char*`类型是可变的(mutable)。如果你想要修改字符串的内容,应该使用`char[]`类型而不是`char*`类型。如果你确定要使用`char*`类型,可以使用`const char*`来避免这个警告。例如,将代码中的:
```c++
char* fullName = "/mnt/d/Code/fortranRW/TEST.DATJ";
```
改成:
```c++
const char* fullName = "/mnt/d/Code/fortranRW/TEST.DATJ";
```
这样就不会触发编译警告了。
阅读全文