如何在CBuilder里新建一个类和构造函数如何调用?请给我一些例子谢谢!

newchaos 2003-12-07 09:57:37
我是一个初学者,
1、我想在CBuilder里新建一个类,要求不用继承关系。
照着书抄也建不起来,请给我一例子谢谢!

2、想在
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
的public:里加入一些构造函数?如何调用?我试了N回都没通过去,请举例详细一点。谢谢!

...全文
57 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
newchaos 2003-12-09
  • 打赏
  • 举报
回复
还有一个问题:
本人想在数组bool a[100][100]定义在一个类的private里,但是弹出对话框说不能这样定义,如果我想定义,我应该怎么定义呢?谢谢
newchaos 2003-12-09
  • 打赏
  • 举报
回复
我看几本书,以为自己明白什么是类,经大虾们一说才总算有点知道。。
不过,我遇到这样一个问题:
当我用
TForm1 * p = new TForm1;
·····
delete aaa;
aaa = NULL;
调用时,发现有一个错误: Could not find a match for TForm1::TForm1();
而当我调用
TForm1 *p = (TForm1 *)malloc(sizeof(TForm1));
free (p);
时却通过去了。
这是为什么?请指教!!
JedyWoody 2003-12-09
  • 打赏
  • 举报
回复
Chimae(齐藤),数据库类也给我一份,好吗?
jedy_woody@163.com
小弟先谢了。
BoweirrKing 2003-12-09
  • 打赏
  • 举报
回复
Chimae(齐藤) ,Thank You!

邮件已经收到,太感谢了。

研究中.....
jias 2003-12-09
  • 打赏
  • 举报
回复
数据库类也给我一份,谢谢
jias7@21cn.com
lu_zi 2003-12-09
  • 打赏
  • 举报
回复
构造函数可以这样进行调用,
class a
{
};
a* p=malloc(sizeof(a));
new (p) a();
Chimae 2003-12-08
  • 打赏
  • 举报
回复
To:newchaos(宙斯),我另外给你发了一个程序模板,里面有调用的例子,看看先!数据库配置在Data.ini文件里,有问题给我发邮件!
Chimae 2003-12-08
  • 打赏
  • 举报
回复
不好意思,白天出差了,才回来!
我有两个类,一个类是连接数据库的,另一个类是执行SQL的,请大家查收!
yuemanlou 2003-12-08
  • 打赏
  • 举报
回复
Chimae(齐藤),我也要一份数据库类
谢谢!
yuemanlou_xi@hotmail.com
BoweirrKing 2003-12-08
  • 打赏
  • 举报
回复
To: newchaos(宙斯)

构造函数的确是可以有“一些”的,但是往往是为了一些不同的目的才会有“一些”构造函数的。这就是构造函数的“重载”,即同一个函数名,有不同的参数,编译器用那些不同的参数来区分这些相似的函数,具体原理你可以看看别的书。

比如:

class A
{
private:
int Num;
public:
A()
{};//这是个空的构造函数,是默认的缺省的构造函数,在对象生成时,它什么都不做。

A(int n) //这就是对A()这个缺省构造函数的重载,它完成的对成员变量Num的初始化
//工作。这些在讲C++的书上是有更加详细的说明的。
{
Num=n;
};
};

以上的A()和A(int n)就构成了一组构造函数,其实也就是“一些”构造函数了,

现在清楚一些了吗?
BoweirrKing 2003-12-08
  • 打赏
  • 举报
回复
Chimae(齐藤)的数据库类也给我来一份吧,谢谢了。谢谢谢谢了。我觉得也许这就是我正需要的。

50M的邮箱,尽管发。

MobileAxe@126.com

再次表示感谢!
lansb1 2003-12-08
  • 打赏
  • 举报
回复
lansb1@yahoo.com.cn
给我也发个吧.
谢谢~~
newchaos 2003-12-08
  • 打赏
  • 举报
回复
好的,newchaos@21cn.com谢谢!!!
newchaos 2003-12-08
  • 打赏
  • 举报
回复
我加他30分,求求大虾们给我一个简单的例子吧!!
Chimae 2003-12-08
  • 打赏
  • 举报
回复
我有一个类,是关于数据库操作方面的,是我积累编程经验后,编的一个类!操作数据库非常方便,我可以给你,也可以发布在CSDN上,大家一起进步,你留个邮箱吧,呵呵!
hzhxxx 2003-12-07
  • 打赏
  • 举报
回复
你先不要加 上面的\

//最后记得这样

delete newform;
newform = NULL;


等你明白了在加,不严你可能看不到效果
hzhxxx 2003-12-07
  • 打赏
  • 举报
回复


对不起,上面一句少了一个 ;
newchaos 2003-12-07
  • 打赏
  • 举报
回复
我运行后怎么会出现这一行newform->Show();的Declaration syntax error错误呢???
constantine 2003-12-07
  • 打赏
  • 举报
回复
同意楼上。
hzhxxx 2003-12-07
  • 打赏
  • 举报
回复
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
就是他的实现

你把这个加入,就是 重载了
申明,放在你刚才的 .h的public 下面
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

实现,放在你的对应的 .cpp 上面
__fastcall TForm1::TForm1(TComponent* Owner,const AnsiString strTitle)
:TForm(Owner)
{
this->Caption = strTitle;
}


//调用


TForm1 * newform = new TForm1(NULL,"我的一个自定义构造函数")
newform->Show();

//最后记得这样

delete newform;
newform = NULL;

加载更多回复(1)

13,873

社区成员

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

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