一个扑克牌类,其中成员Suit代表花色(当然只有四种,所以可以用枚举类型),要求程序中可对Suit类型赋值(用=操作符),Suit可做自增操作(用++操作符)。代码如下:
// OLOperator.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;
class Card
{
public:
enum Suit {
Diamonds,
Hearts,
Clubs,
Spades
};
Suit suit; //外部可访问,必须在publice中定义
private:
Suit &operator=(Suit &rs) // “=” 操作符重载
{
suit = rs;
return rs;
}
friend const Suit &operator++(Suit &rs,int) // “++” 操作符重载,这里friend必加
{
return rs = (Suit)((rs+1)%sizeof(Suit));
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Card card;
card.suit = Card::Diamonds;
std::cout << card.suit << endl;
card.suit++;
std::cout << card.suit << endl;
return 0;
}
相关网址:
http://doc.readmen.com/search.asp?sch=%D4%CB%CB%E3%B7%FB%D6%D8%D4%D8
http://www.vwind.com/dev/html/28.htm