use*_*316 5 c c++ initialization
我正在读一本书,它说有初始化和赋值为内置型没有区别C或C++,但喜欢的类型string中C++,也有区别.为什么?为什么内置类型没有区别C?
因为标准类型就像int没有构造函数一样.这些
int x = 123;
int y;
y = 123;
Run Code Online (Sandbox Code Playgroud)
是相同的(在开始时,y将有一些随机/垃圾值).
创建对象时将调用其构造函数.所以,例如:
std::string s = "123";
std::string y;
y = "123";
Run Code Online (Sandbox Code Playgroud)
s将被创建并立即初始化,同时y将被创建,其值将被初始化(基于std::string构造函数),之后,它们将在更改期间被更改operator=.