C++构造函数调用变体

C++ constructor call variations

本文关键字:函数调用 C++      更新时间:2023-10-16

在下面的代码中

template <typename T> struct Maybe {
    T* context;
    Maybe(T *context) : context{context} {} .... }

声明有什么区别

Maybe(T *context) : context{context} {} .... }

Maybe(T *context) : context(context) {} .... }

这两个选项都可以毫无问题地编译和运行。

区别在于前者是直接列表初始化。后者是直接初始化。在这种情况下,它们都做同样的事情。