首页 >后端开发 >C++ >如何正确实例化C类对象并调用其构造函数?

如何正确实例化C类对象并调用其构造函数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-22 08:07:35579浏览

How Do I Correctly Instantiate a C   Class Object and Invoke Its Constructor?

理解 C 中的构造函数调用

在 C 中,构造函数是特殊的成员函数,在创建类的对象时自动执行。它们负责初始化对象的数据成员。

问题

考虑以下代码片段:

#include <iostream>
using namespace std;

class Class {
    public:
        Class() {
            cout << "default constructor called" << endl;
        }

        ~Class() {
            cout << "destructor called" << endl;
        }
};

int main() {
    Class object(); // Incorrect syntax
}

main() 函数尝试创建 Class 类的对象。但是,它没有按预期调用构造函数。

原因

问题在于对象声明中使用的语法不正确:

Class object();

这一行声明了一个名为 object() 的函数,该函数返回一个 Class 对象。要正确创建 Class 类的对象,我们应该使用以下语法:

Class object;

解决方案

通过删除类名后面的括号,我们可以正确地创建类 Class 的对象。声明类 Class 的对象。该对象将按照预期正确调用默认构造函数。

附加说明

  • 最令人烦恼的解析是 C 中的一种现象,其中代码可以解释为根据上下文,可以是函数声明,也可以是类声明。
  • 为了避免这种歧义,建议遵循以下规则拇指:“始终在类名后面加上括号以指示构造函数调用。”

以上是如何正确实例化C类对象并调用其构造函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn