求Symbian中C类的详细介绍.最好带例子

来源:百度知道 编辑:UC知道 时间:2024/06/14 22:11:37
求Symbian中C类的详细介绍.最好带例子

class CPerson : public CBase
  {
  public:
  static CPerson* NewL( TInt aId, TDesC& aName );
  static CPerson* NewLC( TInt aId, TDesC& aName );
  ~CPerson();

  public:
  TDesC& Name() const;
  void SetNameL( TDesC& aName );

  private:
  CPerson( TInt aId ) : iId( aId ) {}
  void ConstructL( TDesC& aName );

  private:
  TInt iId;
  HBufC* iName;
  };

  void CPerson::ConstructL( TDesC& aName )
  {
  iName = HBufC::NewL( aName.Length() );
  TPtr ptr( iName->Des() );
  ptr.Copy( aName );

  //iName = aName.AllocL();
  }

  CPerson* CPerson::NewLC( TInt aId, TDesC& aName )
  {
  CPerson* self = new ( ELeave ) CPerson( aId );
  CleanupStack::PushL( self );
  self->ConstructL( aName );
  return self;
  }

  CPerson* CPerson::NewL( TInt aId, TDesC& aName )
  {
  CPerson* self = CPerson::Ne