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

C++ 声明没有默认构造函数或副本构造函数的成员变量

C++ 声明没有默认构造函数或副本构造函数的成员变量,c++,class,constructor,C++,Class,Constructor,假设我有一个类成员,它既没有默认构造函数,也没有副本构造函数,它是由第三方API和函数一起创建的 我有申报单 Member CreateMember(string str); class MyClass { Member my_member; public: MyClass(){ my_member = CreateMember("I am a parameter"); } } 由于类成员没有默认构造函数,因此上述声明不起作用,因为无法初始化成员 我也不

假设我有一个类
成员
,它既没有默认构造函数,也没有副本构造函数,它是由第三方API和函数一起创建的

我有申报单

Member CreateMember(string str);

class MyClass {
    Member my_member;
public:
    MyClass(){
       my_member = CreateMember("I am a parameter");
    }
}
由于类
成员
没有默认构造函数,因此上述声明不起作用,因为无法初始化成员

我也不能将其声明为指针,因为缺少复制构造函数意味着我不能调用
新成员(我的\u成员)

我在这里不知所措,有什么建议吗?

使用:

Member CreateMember(string str);

class MyClass {
    Member my_member;
public:
    MyClass()
    : my_member(CreateMember("I am a parameter"))
    {
    }
};