可以通过这种方式声明一个全局对象类吗?

时间:2013-12-17 08:34:50

标签: c++ class main global-object

我不知道为什么但是这个代码有效,这个记录}r;是什么以及它是如何工作的?可以通过这种方式声明为全局对象类吗?

#include <iostream>

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

int main()
{

}

4 个答案:

答案 0 :(得分:2)

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

相同
class A { ... };

A r;

int main() { ... }

答案 1 :(得分:1)

  

可以通过这种方式声明为全局对象类吗?

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

这样的东西
struct vertex {
   float x, y;
} my_vertex; // Declares a variable of type vertex

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

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

的类
class my_class {};

括号立即以分号开头,声明没有变量。

您还可以通过使用逗号运算符分隔多个变量来声明它们。

class my_class {} x, y, z;

答案 2 :(得分:0)

它创建一个名为class A的{​​{1}}实例。它与doint r几乎相同,这将在该位置上创建一个全局int。

答案 3 :(得分:0)

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

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

BR