帮我看看以下的代码什么意思?
struct TPoint
{
TPoint() {}
TPoint(int _x, int _y) : x(_x), y(_y) {}
TPoint(POINT& pt)
{
x = pt.x;
y = pt.y;
}
operator POINT() const
{
POINT pt;
pt.x = x;
pt.y = y;
return pt;
}
int x;
int y;
};
我没有学c++就学c++Bulider了,这是我看TPoint 类的定义的时候看到的,对于其中的一些关键字比如:operator 还有一些写法TPoint(int _x, int _y) : x(_x), y(_y) {}
弄不清,请帮我解释一下。
问题点数:30、回复次数:4Top
1 楼phoenix96_2000(Arcrest)回复于 2001-12-21 09:14:47 得分 5
没学C++去学啥BCB,当然很多与C++有关的看不懂了
你还是自己买本书看吧,
operator 是重载操作符的关键字,上面的是定义了强制性转换的重载(对结构POINT)
TPoint(int _x, int _y) : x(_x), y(_y) {} 构造函数,缀上基类的(不过咋会没派生声明呢)
Top
2 楼kingfish(工作很忙,很少来csdn...)回复于 2001-12-21 09:15:13 得分 5
一步一步的来吧,先花时间学好C++,学BCB事半功倍Top
3 楼steedhorse(晨星)回复于 2001-12-21 09:19:42 得分 10
_x,_y不过是普通的变量名而已。
TPoint(int _x, int _y) : x(_x), y(_y) {}
中冒号后面部分的意思是,用形式参数_x的值初始化改结构的成员变量x,而用形式参数_y的值来初始化y,这样可以方便写电码和提高效率。该行等价于:
TPoint(int _x , int _y)
{ x = _x;
y = _y;
}
operator是操作符重载的关键字,这里将运算符“()”重载了,其参数是TPoint,返回值是POINT,这样就可以用像int i = int('a')一样来使用POINT pt = POINT(tpt),其中tpt是TPoint类型的对象。这个还是找本书来看看吧。Top
4 楼happyforever()回复于 2001-12-21 10:28:50 得分 10
前面的几个是重载的构造函数,比较简单,第一个可以不给任何参数,第二个可以用两个整数初始化,第三个可以用POINT类型初始化,至于最后的运算符重载,几句话说不明白,还是看书把Top




