某从cb过渡到delphi快20天了,略有不行惯,而讲这两者差异的文章也很少,所以想集思广益,听听大家的建议和观点。本人分不多,请谅解。

解决方案 »

  1.   

    bcb与delphi两者的IDE简直就是twins,区别就在于两者的内核语言,
    与其说bcb与delphi的区别,还不如说是c++和object pascal的区别:
    c++         object pascal
    {           begin
    }           end
    type Var    var: type
    #include    uses
    指针->      指针^.
    =           :=
    ==          =
    !=          <>
    %           mod
    ||(|)       or
    &&(&)       and
    switch      case
    func()      func或者func()
    支持多继承  单继承(基类只有一个,但可用接口实现多继承)
       
      

  2.   

    Delphi高手突破,到它的网站有附录电子版Down
      

  3.   

    我提个醒,呵呵我吃了不少苦头,最烦的就是以前很多用c写的现在要用delphi改写,你就要面对一大堆的.h.hpp文件要改写成pas文件,虽然不难只是关键字和语法的改变,但是如果那些.h.hpp文件很大的话,你就惨喽。纯粹体力劳动精神折磨。但是想象一下delphi的超级编译速度3.7万行/秒,啊,让我欣慰呀:)
      

  4.   

    self是否就是this
    c++中
    class a a1;此时a1就创建了
    同样的情况在delphi中呢?
    c中的return在pascal也没有对应的。
    难道只能用result := xx;exit;代替
      

  5.   

    C++程序员进修Delphi知识要领在Delphi中,类的构造函数类似于C++的类静态函数。例如:C++:      AClass * AInstanceVar=new AClass(...);
    访问时:  AInstanceVar->AMethod();Delphi:   AClass AInstanceVar=AClass.Create(...);
    访问时:  AInstanceVar.AMethod();从语法上,Delphi里面的类指针变量语法相当于C++里面的引用。如果C++模拟Delphi的语法,可以这样写:  AClass & AInstanceVar=*(new AClass(...));
      AInstanceVar.AMethod();在Delphi中,i++这类的语法变成了Inc(i),同样i--对应于Dec(i) 
    Delphi中,for语句写法是
    for I:=0 to count-1 do begin
       ...
    end 
    Delphi中,dpr文件,也就是工程文件中,begin和end之间相当于C++的main函数;也就是说,dpr文件也是一种Pas文件。 
    Delphi -- C++ 文件编译产物对比
    Delphi C++ 
    pas文件中的implementation上部 源代码文件 h,hpp 
    pas文件中的implementation下部 c,cpp 
    dpr 项目文件 主函数所在cpp 
    dfm、xfm 窗体文件,相当于资源 res,rc 
    inc 预处理头文件 h,hpp 
    dcr 组件资源文件 res 
    dcu pas文件编译之后的产物 obj+hpp文件 
    bpg 项目组文件 workspace文件 Delphi中声明变量顺序和C++相反,是变量名+冒号+类型,整数写法是Integer。变量声明之前要加var。
    例如
    var 
      I:integer; 
    Delphi中,函数根据是否有返回值,分为function和procedure两种。例如:
    function AddTwoNum(x,y:integer):integer;
    procedure DoSomething(v:double); 
      

  6.   

    self就是this指针。
    在delphi中要创建对象必须显式调用构造函数。比如
    var
      str :TStrings;   //抽象类
    begin
      str :=TStringList.Create;
    end;
    c中的return对应Delphi中的result;如果直接返回,那么就用exit;搞定
      

  7.   

    另外,Delphi中的exit相当于C++的return
    Delphi中的所有的类变量都是隐指针,也就是说,起到指针的作用,但语法上和C++的引用一样。
    在C++中,“AClass a1;”的写法实际是创建了AClass的一个实例。
    在Delphi中对等的 a1:AClass;却只是声明了一个引用变量。
    在Delphi中,两个类实例变量a1:=a2的意思是把a2所指向的东西让a1也指向,相当于C++中的两个指针赋值。
    Delphi中,工程文件*.dpr中的begin和end之间相当于C++的WinMain函数或main函数。
      

  8.   

    c++中的空指针对应着Delphi中的nil对象的释放:
    一般都是
    AComponent.free;
    AComponent:=nil;
    或写作
    FreeAndNil(AComponent);
      

  9.   

    c++中的空指针对应着Delphi中的nil对象的释放:
    一般都是
    AComponent.free;
    AComponent:=nil;
    或写作
    FreeAndNil(AComponent);