Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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++ - Fatal编程技术网

C++ 取字符指针的构造函数

C++ 取字符指针的构造函数,c++,C++,这将是一个基本问题,但希望有人能帮助我 我有这样的功能 void createInstance() { MyClass m_Class; m_Class(25, "Roger")(32, "Pete")(56, "Haley")(89, "Tom"); } 现在在MyClass中: class MyClass { MyClass(); MyClass(int, const char&); // Gets ERROR here... }; 我想在MyCla

这将是一个基本问题,但希望有人能帮助我

我有这样的功能

void createInstance()
{
   MyClass m_Class;
   m_Class(25, "Roger")(32, "Pete")(56, "Haley")(89, "Tom");
}
现在在MyClass中:

class MyClass 
{
    MyClass();
    MyClass(int, const char&); // Gets ERROR here...
};
我想在MyClass中编写一个构造函数,它可以从createInstance函数中获取第2行

我该怎么做呢?

像这样:


MyClass(int,const char*)

强制性:你为什么要这样做,你想让它做什么?在使其编译方面,您必须了解它的编写方式,您的对象已经被构造。第二行根本不是构造函数调用,而是调用对象上的运算符(),您还没有定义它。您是想创建多个对象,还是希望能够灵活地将这些int、string对中的多个传递给构建后的对象?如果要执行后一种操作,可以执行以下操作:

class MyClass 
{
    MyClass();

    MyClass& operator()(int x, const char* str) {
        // Do stuff with x and str
        return *this;
    }
};

聪明的是,操作符()返回对对象本身的引用,当然有操作符(),因此您可以再次调用它,它再次返回对对象的引用,依此类推。下面是一个工作示例:.

给出错误-错误:调用'(MyClass)(int,const char[4])不匹配;|获取错误-错误:调用'(MyClass)(int,const char[4])不匹配