4.1 用构造函数确保初始化在 stash 和 stack 类中都曾调用 initialize() 函数,这暗示无论用什么方法使用这些类的对象,在使用之前都应当调用这一函数。很不幸的是,这要求用户必须正确地初始化。而用户在专注于用那令人惊奇的库来解决他们的问题的时候,往往忽视了这些细节。在 C++ 中,初始化实在太重要了,所以不能留给用户来完成。类的设计者可以通过提供一个叫做构造函数的特殊函数来保证每个对象都正确的初始化。如果一个类有构造函数,编译器在创建对象时就自动调用这一函数,这一切在用户使用他们的对象之前就已经完成了。对用户来说,是否调用构造函数并不是可选的,它是由编译器在对象定义时完成的。

接下来的问题是这个函数叫什么名字。这必须考虑两点,首先这个名字不能与类的其他成员函数冲突,其次,因为该函数是由编译器调用的,所以编译器必须总能知道调用哪个函数。Stroustrup 的方法似乎是最容易也是最符合逻辑的:构造函数的名字与类的名字一样。这使得这样的函数在初始化时自动被调用。你想了解更多构造函数初始化列表的详细信息吗?请访问 C++类构造函数初始化列表

下面是一个带构造函数的类的简单例子:


class MyClass {

public:

    MyClass() {

        // 初始化代码

    }

};

你是否想知道在子类中如何处理构造函数初始化呢?这个文章有详细的讲解。还是对构造函数的初始化顺序感兴趣?请点击 这里

关于构造函数的初始化列表及其好处,可以参考这个资源和这个文章。无论你是初学者还是经验丰富的程序员,这些资源都能帮助你更好地理解构造函数在 C++ 中的重要性和应用技巧。

你将更全面地理解 C++ 中构造函数的作用,并且在使用这些类时,不再因为忽视初始化细节而导致问题。学习如何正确地使用构造函数,可以让你的代码更加稳健和高效。