如何在头文件中声明一个全局类?

icemanpro 2010-10-20 06:10:19
现有个class.

class.h

class a
{
public
a(int a,int b);
}

class.cpp
a::a(int a,int b)
{

}


还有个public.h文件。
如何在public.h文件中声明这个类变量,并且在其它的cpp文件初始化这个类?
...全文
736 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2010-10-25
  • 打赏
  • 举报
回复
概念错误或者混淆吧。
AI应用技术 2010-10-24
  • 打赏
  • 举报
回复 1
C++局部类和C++嵌套类:
C++局部类:
在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关。局部类不能被外部所继承。在定义局部类时需要注意:局部类中不能说明静态成员函数,并且所有成员函数都必须定义在类体内。在实践中,局部类是很少使用的。

C++嵌套类:
在一个类中定义的类称为C++嵌套类,定义嵌套类的类称为外围类。定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象。这样可以提高类的抽象能力,并且强调了两个类(外围类和嵌套类)之间的主从关系。
http://www.cxybase.com/ccshellpython/c-c-165.html
Franklin_007 2010-10-24
  • 打赏
  • 举报
回复
用extern和static关键字,如果在别的文件中不想让其用这个全局变量就用static声明,否则就用extern
Jesusgospelnj 2010-10-23
  • 打赏
  • 举报
回复
5楼说的很多,你可以在public.h中对外开放extern class ***;
其他文件只要包含public.h就可以看到*** 类了。
具体定义可以在public.cpp中初始化
当然其他文件也可以操作了
ifengshow 2010-10-23
  • 打赏
  • 举报
回复
学习下
C++实习生 2010-10-20
  • 打赏
  • 举报
回复
这个问题问的好,还好不如C语言好。

extern class a;//外部的 这个写到public.h中,

然在其它使用的程序,#include <public.h>


比如在C++BUILDER 中的头文件
先定义一个类,在后面有一个外部声明
//----------------------------------------------

#include "Unit2.h" //这里就包含了第二个窗口的声明

class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;//就是这里,

你也可以依照这样的做法你的类头文件中,加一个这样的外部声明,

这样,在你哪要使用了,就包含这个头文件,

在第一个窗口中就可以使用了第二窗口的类了

TForm1 *Form1;
TForm2 *Form2; //这个类在第2个文件头中
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2 = new TForm2(this);
Form2->ShowModal();
}
//---------------------------------------------------------------------------

無_1024 2010-10-20
  • 打赏
  • 举报
回复
学习ing 不过应该只要引入头文件就可以吧
libinfei8848 2010-10-20
  • 打赏
  • 举报
回复
在别的头文件中直接写class a;
Proteas 2010-10-20
  • 打赏
  • 举报
回复
类没有初始化的概念,有实现这个概念。
xiaohuh421 2010-10-20
  • 打赏
  • 举报
回复
类 并没有全局的概念

全局变量到是可以.
在public.h中定义全局变量

a obj(10,10);//定义一个a类的对象,并初传入参数10,10

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧