我使用bcb的一些体会,零分帖,不要鄙视,希望能给大家一些帮助

ThinkX 2005-06-30 09:58:14
使用BCB有几年了,现在不常用了。

说些我使用bcb的一些体会:
1.BCB是个基于C++开发工具
BCB是个使用C++的开发工具,它支持ISO C++标准,C++是bcb的灵魂。VCL只是BCB的一个库而已,还有很多的C++库可以使用。将泛形技术和VCL结合使用可以收到很好的效果。将VCL理解为C++开发UI的一个强有力的库比较好些,这和Delphi中VCL是Delphi的半壁江山是不同的。BCB绝对不是Delphi for C++,而对C++的理解是Delphi转到BCB的一个最大的障碍。

2.正确理解RAD
RAD是一个很好的特性,可以快速的开发原型应用,但也容易被误用。只会拖放控件,然后把Form搞的和垃圾场一样不是一个好主意,注意到您的Form中有几千行代码,有多少是和Form毫无关系的,放在Form中只是为了方便?BCB(或者Delphi的其他RAD工具)的程序结构是需要合理的组织的,可以充分的利用各种设计模式来解决问题,从而得到更加合理的程序,而不是一大片的Copy和Paste相似的代码(比如MIS中调用存储过程的代码)。另外,BCB支持Form的继承,多使用这个特性,可以少写些代码的(比如将Project中所有对话框设计一个共同基类的模式对话框的Form)。

3.不要信仰一种开发工具
开发工具是让你达到目的的一个工具,目的应该是您的信仰,但是工具则不是。BCB很强劲,几乎能进行任何方面的开发,但是它显然不太适应某些方面的开发,如Web开发。学习BCB,不是要把VCL熟悉的有多透彻,更多的关心程序开发中一些共有的东西,那才是财富。不要局限于BCB,放眼远些,java, .NET中很多东西都可以被借鉴到bcb中的。当borland不再推出bcb,当您不再使用bcb时,应该觉得bcb带给您很多的思路和体验,可以很好的用在其他的开发上,而不是一无所有的感觉。


最后,希望bcb给您带来精彩的体验,不要抱怨太多。
...全文
368 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThinkX 2005-07-04
  • 打赏
  • 举报
回复
to SailorTPM(提早二十年退休):
你的代码存在的几个问题:
1.没有虚拟的析构函数。
2.不太会使用const,因为压根没有const。
3.没有处理operator=和拷贝构造函数。
4.尝试着使用stl,也许不是一个坏主意。
5.存在公用的成员变量(当然也有可能特意的设计成这个样子)。

感觉这段程序的作者对C++的使用不是很到位,虽然代码能工作,但是不够细致;而且我觉得,这很像用使用delphi的方式去使用C++。在对类实例处理时,Object pascal使用引用语义,而C++使用值语义的,这点有很大的不同。
写代码和写精致的代码是有很大差距的。:-)
eccalc 2005-07-04
  • 打赏
  • 举报
回复
zihan(子寒)说的很好

不过一个建议:
//学习BCB,不是要把VCL熟悉的有多透彻,更多的关心程序开发中一些共有的东西,那才是财富。

如果你真的想学好BCB,那么你要尽量把VCL搞熟悉,透切,如果你没有这股劲,说实话,很多VCL的精彩你是体会不到的.把VCL学习的越深,体会到的东西也就越多,自然也能够得到更多的收获.我相信,只要你敢说你对VCL很熟悉,你一定懂得那些共有的东西.但是这个熟悉不能够介于表面上的使用.
-----------------------------------------------------------------------------------
我给大家一个公司大型项目中的一个类设计例子:(工程计算项目用的,内置C/C++解释器)
enum TPropertyType { pttFloat,pttInt,pttString,pttStringList,pttBool,
pttScricp,pttExp,pttBitmap,pttFile};
enum TDataEditType{detEdit,detPick,detButton};
enum TVariableType{vbtValue,vbtScript,vbtExp,vbtTable,vbtChart,vbtDll};
-----------------------------------------------------------------------------------
class TWHObject
{
private:
_di_IXMLDocument XML;
void ApplyObject();
protected:
virtual void ReadBody(_di_IXMLNode pNode);
virtual void WriteBody(_di_IXMLNode pNode);
String ExtendName;
TWHVersion *Version;
public:
TWHObject();
~TWHObject();
void LoadFromXML(String pFileName);
void SaveToXML(String pFileName);
void SaveToStream(TStream *pStream);
void LoadFromStream(TStream *pStream);
void LoadFromXMLNode(_di_IXMLNode pNode);
void SaveToXMLNode(_di_IXMLNode pNode);
void LoadFromText(String pText);
String SaveToText();
void PasteFromClipboard();
void CutToClipboard();
void CopyToClipboard();
void Assign(TWHObject *pSource);
String Name;
};

class TWHProperty : public TWHObject
{
private:
TStringList *PickList;
.........
protected:
TPropertyType ptt;
TDataEditType det;
String DataString;
bool Base64Coded;
String SetDll;
public:
TWHProperty();
~TWHProperty();
};

class TWHObjectPlus : public TWHObject
{
private:
TStringList *Objects;//对象链表、支持排序
void Sort(String pName);
........
protected:
void ClearObject();
........
public:
TWHObjectPlus();
~TWHObjectPlus();
void AddObject(TWHObject *pObject);
TWHObject * SetObject(String pName);
void DeleteObject(String pName);
.....
};

class TWHVariable : public TWHObjectPlus
{
private:
.....
protected:
TVariableType vbt;
......
public:
TWHVariable();
~TWHVariable();
......
};
上面的设计中我去了一些成员函数,可以看出模拟了VCL中的类层次设计的。VCL博大精深,可以学习的哦!
zjx1980 2005-07-04
  • 打赏
  • 举报
回复
兄弟说的不错,学习了
eccalc 2005-07-04
  • 打赏
  • 举报
回复
呵呵,楼上正解。修改Delphi代码过来的。它是在一个DLL中存在的呢!
这里只给大家一个演示模样的,今天有点空,看到了就发表一下!
公司很忙,我是搞公司经营的,“拼”的不好请原谅。:-)
FengSC 2005-07-04
  • 打赏
  • 举报
回复
同意 ThinkX(思·秋天的树·求职中)的看法,如果SailorTPM(提早二十年退休)的代码是应付一个项目应该是可以的,但是绝对称不上精致。比如类似void LoadFromXML(String pFileName);函数没有返回值是否恰当有待考虑,变量取名也存在问题。总之一个感觉这段代码好象是拼凑出来的,或在一个什么样板上修改的,修改时没有完全理解或是偷懒。
xiaomatian 2005-07-02
  • 打赏
  • 举报
回复
我觉得在用.net的时候很多东西都和bcb相似的.
XBox360 2005-07-01
  • 打赏
  • 举报
回复
特别支持第3点
h98458 2005-06-30
  • 打赏
  • 举报
回复
说的很不错,偶也基本不用bcb了,


zihan 2005-06-30
  • 打赏
  • 举报
回复
同意;

不过一个建议:
//学习BCB,不是要把VCL熟悉的有多透彻,更多的关心程序开发中一些共有的东西,那才是财富。

如果你真的想学好BCB,那么你要尽量把VCL搞熟悉,透切,如果你没有这股劲,说实话,很多VCL的精彩你是体会不到的.把VCL学习的越深,体会到的东西也就越多,自然也能够得到更多的收获.我相信,只要你敢说你对VCL很熟悉,你一定懂得那些共有的东西.但是这个熟悉不能够介于表面上的使用.

只是个人观点不同,个人的学习方法不同,不一定每个人都采用同样的方法.
Sephil 2005-06-30
  • 打赏
  • 举报
回复
偶工作上要用BCB/Java/.NET
私下还是用D多
constantine 2005-06-30
  • 打赏
  • 举报
回复
说的很不错,偶也基本不用bcb了,
oldtab 2005-06-30
  • 打赏
  • 举报
回复
忘了给点掌声。
好坏不论,有心得,写出来就不错。
再次掌声。
oldtab 2005-06-30
  • 打赏
  • 举报
回复
阅。
weixing979 2005-06-30
  • 打赏
  • 举报
回复
学习BCB,不是要把VCL熟悉的有多透彻,更多的关心程序开发中一些共有的东西,那才是财富。不要局限于BCB,放眼远些,java, .NET中很多东西都可以被借鉴到bcb中的。当borland不再推出bcb,当您不再使用bcb时,应该觉得bcb带给您很多的思路和体验,可以很好的用在其他的开发上,而不是一无所有的感觉。



同意,现在很少用BCB,学习.NET 了
hong_qi 2005-06-30
  • 打赏
  • 举报
回复
使用cb已5年,至今还在使用,与楼主有同感。实际上98%的代码与界面无关。

13,871

社区成员

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

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