C++ |没有构造函数的实例匹配参数列表

C++ |没有构造函数的实例匹配参数列表

问题描述:

我真的不明白这个错误。C++ |没有构造函数的实例匹配参数列表

我的类:

class Child : public Parent { 

private: 
    char dllName[250]; 
    char processName[250]; 

public: 
    Child(char dllNameL, char processNameL) { 
     char dllName[] = { dllNameL }; 
     char processName[] = { processNameL }; 
    } 
} 

我的用法:

char colDllName[250] = {}; 
char colProcessName[250] = {}; 

cout << "Enter DLL name: "; 
cin >> colDllName; 
cout << "Enter process name: "; 
cin >> colProcessName; 

Child info(colDllName, colProcessName); 

问题

my usage最后一行,则colDllName(在对象的第一个参数)的示数出。哪里不对?

+3

好了,'的char [250]'是不一样的'char'。 –

+0

使用'std :: string',你的一些痛苦就会解决。 – drescherjm

  1. dllNameprocessName留构造函数初始化后。 (你实例化两个本地字符数组,然后用一个字符串初始化每个字符串,该字符串恰好包含一个 char。当您离开构造函数时,这两个本地数组超出范围,并且您的Child对象基本上未初始化。像strcpy如果你想用char-array构造函数参数的内容初始化它们。

  2. 但是Child::Child被声明为不接受两个字符数组而是两个字符。这就是为什么程序中的那一行不能编译的原因。

  3. 你有没有使用std::string!而非考虑?..