【问题标题】:Can in this way be declared a global object class?可以这样声明一个全局对象类吗?
【发布时间】:2014-01-04 22:22:39
【问题描述】:

我不知道为什么,但是这段代码可以工作,这个记录}r; 是什么以及它是如何工作的?可以这样声明一个全局对象类吗?

#include <iostream>

class А
{
    public:
        А()
        {
            std::cout << "Hello World";
        }
}r;

int main()
{

}

【问题讨论】:

标签: c++ class main global-object


【解决方案1】:

这声明了一个名为 r 的全局变量,其类型为 A。

和这个一样

class A { ... };

A r;

int main() { ... }

【讨论】:

    【解决方案2】:

    可以这样声明一个全局对象类吗?

    嗯,是的!基本上,r 有一个А 类型的全局变量。 C++ 从 C 继承了某种语法,使您能够在类/结构定义之后声明变量。你经常可以从 C 中看到类似的东西

    struct vertex {
       float x, y;
    } my_vertex; // Declares a variable of type vertex
    

    在 C++ 中,struct 与 class 相同,但默认访问说明符除外。

    您可能想知道在类定义之后的分号是什么。所以基本上一个类定义为

    class my_class {};
    

    大括号后面紧跟分号表示没有变量。

    您还可以通过逗号分隔多个变量来声明多个变量。

    class my_class {} x, y, z;
    

    【讨论】:

      【解决方案3】:

      它创建一个名为r 的class A 实例。它与 doint int r; 几乎相同,后者将在该位置上生成一个全局 int。

      【讨论】:

        【解决方案4】:

        也许这有助于您更好地理解。

        C++: Declare a global class and access it from other classes?

        br

        【讨论】:

          猜你喜欢
          • 2013-09-20
          • 2019-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-01
          • 2020-11-16
          • 2019-09-16
          • 2011-05-09
          相关资源
          最近更新 更多