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

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

Mary-Kate Olsen
发布: 2024-12-22 08:07:35
原创
667 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板