#include <iostream>
using namespace std;
struct CTest
{
CTest() { cout << "Constructor called"; }
CTest(string s) { cout << "Any constructor with parameters"; }
};
int main () {
CTest t1;
CTest t2{};
}
我来自 Java 世界,并且t1
刚刚声明了这绝对不是这里的情况,因为这两行都调用CTtest
. 在这种情况下,t1 和 t2 一样调用被覆盖的默认构造函数。是否有任何情况下它实际上有所作为,或者我们总是可以省略大括号?
也许这只是我,但我找不到任何暗示。只有关于何时使用大括号与圆括号(与值与复制构造函数)的讨论。