C 全局对象声明
c++ global object declaration
目前我正在尝试在C 中声明一个全局对象如下:
in Globals.h
#pragma once
#include "Class.h"
extern Class *obj;
然后在一个称为globals.cpp i的单独文件中有
#include "globals.h"
Class *obj;
然后在main.cpp中有
#include "globals.h"
但是编译器在me上丢弃了此错误
in globals.h: error C2143: syntax error : missing ';' before '*'
我不明白这一点,因为这篇文章:C 全局对象解释了这是完成的方式。
问题在于 class.h
包括 globals.h
。您说,如果执行此操作,则该程序会汇总但会违反访问。然后,逻辑有一个错误,这是一个不同的问题。
首先修复编译器错误。违规访问可能是因为您没有正确初始化全局 - 即,它只是一个NULL
指针。
C2143
通常意味着您在变量声明之前没有找到class Class
的定义/声明。
一种方法是,您可能错过了class.h
中类定义结束时的分号。
在class.h
你有
class Class
{
....
}
您已经忘记了上面的分号。
更改为
class Class
{
....
} ;
如果不是这样,是否有其他原因在class.h中找不到类的定义。
尝试使用/p进行编译,然后在编辑器中打开 main.i
,并检查是否在extern
语句之前查看class Class
的声明。
相关文章:
- Arduino C++在构造函数中用参数声明对象数组
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 如何在 if 语句中声明对象并在任何我想的地方使用它?
- 如何使用unique_ptr和make_unique正确声明对象数组
- 声明对象时,如何在C 中修复C2065错误
- 声明对象而不调用默认构造函数
- 一旦对象设置为 null,用于声明对象的堆大小的变量就设置为 null?
- 我可以使用名称而不是类型来声明对象文字吗?
- 在制作(Qt等)GUI时声明对象
- 在基本的GUI编程中,在哪里声明对象和方法
- 同时使用模板和参数声明对象
- "Undefined reference to"使用双模板类声明对象时出错
- 在头文件 C++ 中声明对象
- 在其类中声明对象
- C 可以通过使用要求其为某个类别的对象来声明对象
- 声明对象
- (C++)如何基于条件声明对象类成员
- 使用变量声明对象的名称
- C++ OOP 体系结构:决定是从基类声明对象还是继承基类
- 在声明对象之前在全局函数中使用类的成员函数