Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取初始化构造函数的错误_C++_C++11_Constructor_Namespaces - Fatal编程技术网

C++ 获取初始化构造函数的错误

C++ 获取初始化构造函数的错误,c++,c++11,constructor,namespaces,C++,C++11,Constructor,Namespaces,这是我的流程。cpp #include<iostream> #include "process.h" #include "CString.h" void process(const char* s){ w1::Cstring cs(s); std::cout << cs; } #包括 #包括“process.h” #包括“CString.h” 无效进程(常量字符*s){ w1::Cstring cs(s); std::cout如果构造

这是我的流程。cpp

#include<iostream>
  #include "process.h"
  #include "CString.h"
   void process(const char* s){
    w1::Cstring cs(s);
    std::cout << cs;
   }
#包括
#包括“process.h”
#包括“CString.h”
无效进程(常量字符*s){
w1::Cstring cs(s);

std::cout如果构造函数没有像在代码中那样修改参数,我建议将构造函数的参数类型改为
const char*
。编译器可以隐式地将非
const
转换为
const
,但不能像代码所示的那样反过来。

将构造函数的参数类型改为
const char*
,如果构造函数没有像在代码中那样修改参数。编译器可以隐式地将非
const
转换为
const
,但不能像代码所示,以相反的方式转换。

您编写了构造函数
Cstring(char*s);
作为一个非常量指针。但是您的函数
void进程(const char*s)
正在尝试向它传递一个常量指针。编译器不会自动丢弃常量(这是有充分理由的)

但是,由于该构造函数似乎没有修改其参数,因此应将其更改为常量指针:

Cstring(const char* s);

因此,该错误将得到解决。

您将构造函数
Cstring(char*s);
编写为使用非常量指针。但是您的函数
void process(const char*s)
正在尝试向其传递常量指针。编译器不会自动丢弃常量(这是有充分理由的)

但是,由于该构造函数似乎没有修改其参数,因此应将其更改为常量指针:

Cstring(const char* s);

因此,该错误将被解决。

该构造函数应采用
const char*
(它也以其他方式被破坏)。该构造函数应采用
const char*
(它也以其他方式被破坏)
Cstring(const char* s);