c++ - 将 char 数组传递给参数化构造函数失败

标签 c++ arrays oop constructor

我发现将 char 数组传递给函数时出现问题。这基本上是我看到问题的参数化构造函数。问题在于将 char 数组传递给参数化构造函数。

这是代码:

#include <iostream>
#include <cstring>

 using namespace std;

class kinda
{
int a;
char name[10];

    public: 
    kinda()
    {
        cout<<"in default constr"<<endl;
        a=0;
        name[0]='\0';  
    }

    ~kinda()
    {
        cout<<"in default destr"<<endl;
    }

    kinda(int val,char* naam)
    {
        cout<<"in param constr"<<endl;
        a=val;
        strcpy(name,naam);
    }

    kinda(kinda &obj)
    {
        cout<<"in copy constr"<<endl;
        a=obj.a;
        strcpy(name,obj.name);
    }

    void display()
    {
        cout<<"obj details"<<endl;
        cout<<"a="<<a<<endl;
        cout<<"name="<<name<<endl;
    }
};


int main()
{
    kinda ob,ob1;
    char a[]="prashu";

    ob.display();
    ob(7,a);
    ob.display();

    ob1.display();
    ob1=ob;
    ob1.display();

    return 0;
}

我得到的错误是这样的:

[Error] no match for call to '(kinda) (int, char [7])'

谁能告诉我这是为什么?

最佳答案

您不能在已经构造的对象上调用构造函数。 要么使构造函数成为普通成员函数,要么立即使用所需的构造函数构造对象。

关于c++ - 将 char 数组传递给参数化构造函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496506/

相关文章:

c++ - 如何在类中全部内嵌数据结构模板(同一 .h 文件)

javascript - 如何在 javascript 中打印具有固定列宽的二维数组?

java - 将患者添加到我实现的链表类中

java - 如何访问类的私有(private)构造函数?

c++ - 在 C++ 中调用作为结构数组成员的成员函数指针的语法是什么

c++ - vector C++ 中的并行搜索

C++ 数组错误 C3646 : 'jarArray' : unknown override specifier

symfony - 在 Symfony2/MVC 中实现返回响应的方法的最佳位置

c++ - 编译器在 C++ 中生成默认构造函数

arrays - 错误: Objects are not valid as a React child (found: object with keys {articles})