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

C++ 通过赋值初始化类对象

C++ 通过赋值初始化类对象,c++,class,constructor,initialization,assignment-operator,C++,Class,Constructor,Initialization,Assignment Operator,我今天和施工人员做了一些实验: cls类 { INTA; 公众: cls(){cout您可以对更多类似的参数执行相同的操作: #include <iostream> class cls { int a; double b; public: cls(){std::cout<<"Default constructor called\n";} cls(int a): a(a){std::cout<<"Constructor with

我今天和施工人员做了一些实验:

cls类
{
INTA;
公众:

cls(){cout您可以对更多类似的参数执行相同的操作:

#include <iostream>

class cls
{
    int a;
    double b;
public:
    cls(){std::cout<<"Default constructor called\n";}
    cls(int a): a(a){std::cout<<"Constructor with parameter called";}
    cls(int a, double b) : a(a), b(b){std::cout<<"Constructor with two parameter called";}
};

int main()
{
    cls t = {1, 1.5};
    return 0;
}
#包括
cls类
{
INTA;
双b;
公众:

cls(){std::coutYou可以使用
foox={blah,blah};
。顺便说一下,您的“通过赋值初始化”称为复制初始化。您是否将
-std=c++11
传递给编译器?
cls(int b){a=b;cout@trisct复制初始化是一个标准的艺术术语,与复制构造函数没有直接关系。那么在这里使用()和{}到底有什么区别呢?我想你不明白这个问题。这不是复制初始化。@L.F.这是直接初始化,不是吗?@ElProfesor Yes@trisct{}是一个列表初始化,您可以使用
cls t={a,b};