统一初始化,不再需要像以前一样,显式的调用构造函数来初始化对象,直接{value1,value2,...}
看起来方便了很多。
下面来看一个例子。
#include <memory>
#include <stdio.h>
#include <stdlib.h>
class AA
{
public:
int a;
int b;
AA()
{
printf("construct 123.\n");
}
AA(int ia,int ib)
{
ia = a;
ib = b;
printf("construct 123.\n");
}
};
int main()
{
std::unique_ptr<AA> object{new AA()};
AA ab{1,2};
return 0;
}
std::unique_ptr 类有个构造函数,传入一个AA兑现指针,因此可以写成 std::unique_ptr<AA> object{new AA()}; 这样。
AA ab{1,2}; 这个都是和构造函数对应起来的。