使用默认构造函数C ++初始化对象的不同方法的差异

问题描述 投票:0回答:1
class A {};

A a;// 1
A a{};// 2
A a = {};// 3
A a = A();// 4

似乎有所有选择。 1、2和3是否相同,只是样式问题还是有所不同? 4应该首先创建一个临时对象,然后将其分配给a,但是只有当我完全关闭comliler的优化功能时,它才会发生,对吗?

c++ c++11 c++17
1个回答
1
投票
  1. 是不同的,因为它会默认初始化。对于A,这无关紧要,因为没有要初始化的成员。
© www.soinside.com 2019 - 2024. All rights reserved.