首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类定义中函数终了分号

2013-11-29 
类定义中函数末尾分号class TableTennisPlayer{private:enum{LIM 20}char firstname[LIM]char lastnam

类定义中函数末尾分号

class TableTennisPlayer
{
private:
enum{LIM = 20};
char firstname[LIM];
char lastname[LIM];
bool hasTable;
public:
TableTennisPlayer(const char* fn = "none", 
const char* ln="none", bool ht = false);
void Name()const;
bool hasTable()const{return hasTable;};
void ResetTable(bool v){hasTable = v;};


};
//simple derived class
class RatedPlayer:public TableTennisPlayer
{
private:
unsigned int rating;
public:
RatedPlayer(unsigned int r = 0, const char * fn = "none",
const char* ln = "none", bool ht = false);
RatedPlayer(unsigned int r, const TableTennisPlayer & tp);
unsigned int Rating(){return rating;}
void ResetRating(unsigned int r){rating = r;}
};


为什么上面的红色函数要末尾添加分号,而蓝色不部分却没有
[解决办法]
不可能吧?
改了一下,倒是发现函数hasTable()与hasTable成员变量重名了.
class TableTennisPlayer
{
private:
enum {LIM = 20};
char firstname[LIM];
char lastname[LIM];
bool _hasTable;
public:
TableTennisPlayer(const char* fn = "none", 
  const char* ln="none", bool ht = false);
void Name() const;
bool hasTable() const { return _hasTable; }
void ResetTable(bool v) { _hasTable = v; }
};

//simple derived class
class RatedPlayer:public TableTennisPlayer
{
private:
unsigned int rating;
public:
RatedPlayer(unsigned int r = 0, const char * fn = "none",
const char* ln = "none", bool ht = false);
RatedPlayer(unsigned int r, const TableTennisPlayer& tp);
unsigned int Rating() { return rating; }
void ResetRating(unsigned int r) { rating = r; }
};

[解决办法]
引用:
引用:

不可能吧?
改了一下,倒是发现函数hasTable()与hasTable成员变量重名了.


确实那里不小心输错了,这段代码出自C++ primer Plus~
自习对比了老版的书和第五版的PDF都是上面有下面没有,很是不解~
有函数体应该是定义了吧,而非声明了吧~很奇怪这里的规则


一点也不奇怪滴。在类中定义了函数体,就不需要加分号(加也不会错),反之就加。

热点排行