类声明的使用

lihao24 2001-05-12 04:31:00
我把自已创建的类全部放在一个单元文件中(myclasses.cpp和myclasses.h),现在我想在一个窗口(Form1)中使用这些类,应该怎样声明才能在这个窗口中有效?我在窗口的oncreate中声明老是出现没有定义的错误,为什么?
...全文
170 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihao24 2001-05-14
  • 打赏
  • 举报
回复
我已经解决了,谢谢大家
lihao24 2001-05-13
  • 打赏
  • 举报
回复
//类定义代码
#include <db.hpp>
#include <forms.hpp>
#include <windows.hpp>
#include <dbgrids.hpp>
#include <inifiles.hpp>
class TDBGridWidth:public TObject
{
public:
virtual void __fastcall LoadWidth(AnsiString FormName,TDBGrid *DBGrid);
virtual void __fastcall SaveWidth(AnsiString FormName,TDBGrid *DBGrid);
TDBGridWidth();
};
//类声明代码就象rh那样定义的
class TForm1:TForm(..)
{
...
...
private:
TMyClass *aaa;
...
}


Wingsun 2001-05-13
  • 打赏
  • 举报
回复
你可以像rh说的那样,如果出现你的这个错误我怀疑是你的代码写错误了,你可不可以贴出你的类的定义代码和你的声明代码。
lihao24 2001-05-13
  • 打赏
  • 举报
回复
这个问题不会这么难吧,高手都到哪去了?
lihao24 2001-05-13
  • 打赏
  • 举报
回复
请大家帮帮忙
lihao24 2001-05-13
  • 打赏
  • 举报
回复
//类声明代码就象rh那样定义的
class TForm1:TForm(..)
{
...
...
private:
TMyClass *aaa;
...
}
这样定义会出现"Field AllTransaction->DBGridWidth does no have a corresponding component.remove the declaration?"错误,why?
Sun2001 2001-05-13
  • 打赏
  • 举报
回复
//类声明代码就象rh那样定义的
class TForm1:TForm(..)
{
...
...
private:
TMyClass *aaa;
...
}
//然后:
__fastcall TForm1::TForm1(TComponent* Owner)
: TFrom(Owner)
{
aaa = new TMyClass();
}

OK?
lihao24 2001-05-12
  • 打赏
  • 举报
回复
luoliu你这样的声明能通过编译?不会吧
luoliu 2001-05-12
  • 打赏
  • 举报
回复
你只是申明了变量,还需要实例化它,即:
class TForm1:TForm(..)
{
...
...
private:
TMyClass *aaa=new TMyClass;
...
}
lihao24 2001-05-12
  • 打赏
  • 举报
回复
我不想使用全局变量,rh的办法我也试过但是出现了"Field AllTransaction->DBGridWidth does no have a corresponding component.remove the declaration?"其中DBGridWidth是我声明的类实例
我不懂电脑 2001-05-12
  • 打赏
  • 举报
回复
在unit1.cpp声明就是了
hello_wyq 2001-05-12
  • 打赏
  • 举报
回复
在主窗口的CPP中定义,不如:
int i = 0;
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TFrom(Owner)
{
}
...
在用的地方
extern int i;
这样就可以了.
rh 2001-05-12
  • 打赏
  • 举报
回复
声明成全局的
或者采用类的聚合方式,比如:
class TForm1:TForm(..)
{
...
...
private:
TMyClass *aaa;
...
}

那么在整个FORM1里都能访问实例aaa
xycleo 2001-05-12
  • 打赏
  • 举报
回复
那就在unit1.h中声明
lihao24 2001-05-12
  • 打赏
  • 举报
回复
这个我当然知道,我的意思是说如何声明一个类的实例,使之在整个窗口过程中都能访问
「已注销」 2001-05-12
  • 打赏
  • 举报
回复
xycleo 2001-05-12
  • 打赏
  • 举报
回复
在工程中添加!!然后Include"myclasses.h"就可以啦
不要在oncreate里声明

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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