在VC中重载关系运算符"<"时为什么会出错?解决思路

在VC中重载关系运算符"<"时为什么会出错?
#include   <iostream>
#include   <string>
using   namespace   std;

class   CBridge
{
public:
CBridge(string   cs);
CBridge(const   CBridge   &obj);
public:
~CBridge(void);
public:
char   *suit,*symbol;
int   num;
public:
bool   operator> (CBridge   obj);
};

CBridge::CBridge(string   cs)
{
suit=new   char;
symbol=new   char;

*suit=cs[0];
*symbol=cs[1];
                  num=(int)cs[1];
}

CBridge::CBridge(const   CBridge   &obj)
{
suit=new   char;
*suit=*obj.suit;

symbol=new   char;
*symbol=*obj.symbol;
}

bool   CBridge::operator> (CBridge   obj)
{
return   (num> obj.num);
}
int   main()
{
CBridge   a( "S3 "),b( "HA ");

cout < <(a> b);

return   0;
}

发现函数CBridge::operator> ()中   num> obj.num   指代不明   obj时指代b呢还是a?

------解决方案--------------------
应该加上
析构函数
析构函数是不带参数的 有必要说明一个void参数吗

CBridge::~CBridge()
{
delete suit;
delete symbol;
}