c++ - C++构造函数如何初始化其类的对象?

标签 c++ constructor

我是从C++之旅中读到的,

"Unlike an ordinary function, a constructor is guaranteed to be used to initialize objects of its class. Thus, defining a constructor eliminates the problem of uninitialized variables for a class."



初始化如何进行?例如,假设我有一个类别为string的字段“s”的类
class C{   
     std::string s;   
     ...

}

如何初始化“s”,并且无论编译器如何,其值都可以保证为空字符串?

最佳答案

制作完C实例后,将在称为Member initialization的情况下初始化std::string s

How does "s" get initialized, and would its value be guaranteed to be the empty string whatever the compiler?



您没有向我们展示如何创建C,所以我们不知道使用了什么构造函数。如果使用默认构造函数,则将std::string的默认构造函数用于s。确实确实产生了一个空字符串,如here所述:

Default constructor. Constructs empty string (zero size and unspecified capacity).

关于c++ - C++构造函数如何初始化其类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214568/

相关文章:

复杂方程的 C++ 编译器优化

c++ - 如何在 Unix 中获取更改当前键盘布局的事件?

c++ - 是否可以调用 std::invoke 使其可以使用函数指针?

c++ - std::vector 无异常:警告 C4530:使用了 C++ 异常处理程序,但未启用展开语义。指定/EHsc

c++没有合适的默认构造函数可用

c++ - 用 C++ 编写原型(prototype)构造函数

c++ - 设计这个简单的 ReactNative AR 应用程序的最佳方法是什么?

java - 我们是否必须从其子类中的类 Object 调用默认构造函数

C++ 两个类在构造函数中需要彼此?

c++ - 在构造函数中从 std::istream 初始化 const 类数据成员