谁可以把下面这段翻译成C++[:D]
type
  TLutParamChangedEvent = procedure (Index: Integer) of object;
  TLutFuncType = (lfLinear, lfHalftone, lfLog, lfExp);
  TMonoLutData = array [Byte] of Byte;
  PMonoLutData = ^TMonoLutData;  TLut = class(TCustomControl)  private
万分感谢

解决方案 »

  1.   

    class TLut : public TCustomControl
    {
      private:
    };typedef void (TLut:: *TLutParamChangedEvent)(int Index); // 必须要指定某一个具体的类
    typedef enum {lfLinear, lfHalftone, lfLog, lfExp} TLutFuncType;
    typedef TMonoLutData *BYTE;
    typedef PMonoLutData *TMonoLutData;
      

  2.   

    谢了,楼上有MSN吗
    typedef void (TLut:: *TLutParamChangedEvent)(int Index); // 
    “必须要指定某一个具体的类”是什么意思
      

  3.   

    delphi 可以这样 定义 指向 成员函数的函数指针TLutParamChangedEvent = procedure (Index: Integer) of object;但是 C++不行
    所以就需要 指向具体的类 就是这样了。
      

  4.   

    void __fastcall TLut::AssignTo(TPersistent Dest)
    {
      if (Dest == TLut)
      {
        With Dest As TLut do
        begin
          LightStart := Self.LightStart;
          Invalidate;
        end
      }
      else
      {
        inherited;
      }
    }这个函数中的    
    With Dest As TLut do
        begin
          LightStart := Self.LightStart;
          Invalidate;
        end和inherited 该如何理解?
      

  5.   

    beyondtkl(大龙驹<*学习祖国医学中*>) ,要十分不够可以再加,帮一下嘛
      

  6.   

    你不把整个程序贴出来,怎么搞啊!
    -----------------------
    和inherited 该如何理解?
    翻译成C++ 就是
    (TCustomControl *)this->AssignTo(&Dest);
    即调用基类的方法
      

  7.   

    procedure TLut.AssignTo(Dest: TPersistent);
    begin
      if Dest is TLut then
        with Dest as TLut do
        begin
          LockChangeEvent;
          FMonoDirty := True;
          FuncType := Self.FuncType; 
          FuncBase := Self.FuncBase; 
          LightStart := Self.LightStart;
          LightEnd := Self.LightEnd;
          LutStart := Self.LutStart;
          LutEnd := Self.LutEnd;
          Invalidate;
          UnlockChangeEvent;
        end
      else
        inherited;
    end;
      

  8.   

    上面这个函数中这部分该如何翻译?
    if Dest is TLut then
        with Dest as TLut do
        begin
         .....
        end
      

  9.   

    上面这个函数中这部分该如何翻译?
    if Dest is TLut then
        with Dest as TLut do
        begin
         .....
        end
    -----------
    这个用了Delphi的RTTI,你用的是什么C++啊?
      

  10.   

    真奇怪,你既然用C++ Builder,那干脆直接用Delphi的代码就行了,何必多此一举呢?BCB 6能直接编译Delphi的代码#include <typeinfo.h>void TLut::AssignTo (TPersistent *Dest)
    {
    TLut * ALut;
    if strcmp(type_id(*Dest).name(), "class TLut") 
    {
    ALut =(TLut *) Dest;
    ....
    ALut->LutStart = this->LutStart;
    ...
    }}你试试看吧,我很久没有用C++了,凭记忆写的