从C++中的构造函数调用参数

从C++中的构造函数调用参数,c++,C++,我试图在构造函数中使用某些东西,但我得到编译错误 这是构造函数 Matrix::Matrix(int rows, int cols, std::string matType) { type = matType; row = rows; col = cols; array= new double*[row]; for (int i = 0; i < row; ++i) array[i] = new double[col]; for (int i = 0; i < rows; i

我试图在构造函数中使用某些东西,但我得到编译错误 这是构造函数

Matrix::Matrix(int rows, int cols, std::string matType) {
type = matType;
row = rows;
col = cols;
array= new double*[row];
for (int i = 0; i < row; ++i)
    array[i] = new double[col];
for (int i = 0; i < rows; i++)
    for (int j = 0; j<cols; j++)
        array[i][j] = 0;}
这是我的班主任

 class Matrix {
public:
string type;
int row, col;
double **array;

public:
Matrix(int rows, int cols, std::string matType);    // set the (i,j) element to be 'data'
void setElement(int i, int j, double data); // return the (i,j) element
问题就在这里

if (strcmp(type, "Any") == 0)
< Ia >新C++,我不知道问题是什么,我没有从STD得到合适的转换函数::字符串到const char *存在< /p> 一个STD::String不是conchchar *。它不能隐式转换为1,并且不能将其传递给strcmp。但是你不需要。string是sane类型,您可以直接比较:

if (type == "Any") {
}
对于确实需要std::string的C-string视图的情况,它有一个名为C_str的成员函数来返回这样的指针。但同样,比较不是这种情况。

std::string不是const char*。它不能隐式转换为1,并且不能将其传递给strcmp。但是你不需要。string是sane类型,您可以直接比较:

if (type == "Any") {
}

对于确实需要std::string的C-string视图的情况,它有一个名为C_str的成员函数来返回这样的指针。但是,比较不是这样的情况。

[提示]如果你是C++的新手,

尽量不要在任何地方使用指针 尝试使用库而不是实现矩阵是一个好方法 如果你的代码中包含了新的内容,那么它会变得有多糟糕,以及如何从使用std::vector中获益
这个小投资会在近期内为你省下很多头疼。

< P> [提示]如果你是C++新手,

尽量不要在任何地方使用指针 尝试使用库而不是实现矩阵是一个好方法 如果你的代码中包含了新的内容,那么它会变得有多糟糕,以及如何从使用std::vector中获益
这个小小的投资将在不久的将来为您节省大量的麻烦。

strcmp用于char[],只需使用==for std::string如果strcptype.c_str,Any==0,那么使用==就更好了。@dsp\u user-下面是答案部分。你应该把这个反模式贴在那里,可能会被否决。他提到了转换函数,所以这就是我给他的。无论如何,这对于一个评论来说已经足够简单了。@dsp\u用户-这是一个尝试性的回答。这是一个糟糕的答案。我猜你明白,否则你不会试图绕过同行审查机制。strcmp是用于char[],只需使用==for std::string如果strcmptype.c_str,Any==0,那么使用==就更好了。@dsp\u user-下面是答案部分。你应该把这个反模式贴在那里,可能会被否决。他提到了转换函数,所以这就是我给他的。无论如何,这对于一个评论来说已经足够简单了。@dsp\u用户-这是一个尝试性的回答。这是一个糟糕的答案。我猜你明白这一点,否则你不会试图绕过同行评议机制。我知道你给出的建议是好的,但确实要在回答问题的同时添加答案。有时,问题隐藏了OP的真正需要:。他目前的需要似乎是避免过于复杂的问题。我希望人们能引导我远离为已经存在的东西编写代码。见鬼-我看到的矩阵实现的数量之多…我知道你给出的建议是好的,但一定要添加问题的答案,有时,问题隐藏了OP的真正需要:。他目前的需要似乎是避免过于复杂的问题。我希望人们能引导我远离为已经存在的东西编写代码。见鬼-我见过的矩阵实现的绝对数量。。。