您的位置:首页 > 编程语言 > C语言/C++

C 和 C++ 一些基础

2016-05-16 23:29 435 查看
位运算:

Part1:

namespace test_struct_define
{
struct Point3d
{
float x;
float y;
float z;
};

#define XSET(P,xval,yval,zval)\
{\
P.x=xval;\
P.y=yval;\
P.z=zval;\
}

inline ostream& operator <<(ostream &os,const Point3d &pt)
{
os << "X:VALUE->"<<pt.x << " Y:VALUE->"<< pt.y << " Z:VALUE->" <<pt.z<<endl;
return os;
}

int main()
{
Point3d pt;
XSET(pt,1,2,3);
cout<< pt <<endl;
}

}

template <typename T>
class GLY_POINT_3d
{
public:
GLY_POINT_3d(T x=0.0,T y=0.0,T z=0.0):_x(x),_y(y),_z(z)
{
}

T x() const
{
return _x;
}
T y() const
{
return _y;
}
T z() const
{
return _z;
}

friend ostream&operator<<(ostream &os,const GLY_POINT_3d <T> &pt)
{
os<< pt.x()<< " "<< pt.y()<<" " << pt.z();
return os;
}

T &operator [](int index)
{
assert(index<3);
if(index==0)
{
return _x;
}
if(index==1)
{
return _y;
}
if(index==2)
{
return _z;
}
}
private:
T _x;
T _y;
T _z;
};
int main()
{
GLY_POINT_3d <int> pt(1,2,3);
cout << pt<<endl;
cout << pt[0] <<endl;
cout << pt[1] <<endl;
cout << pt[2] <<endl;

}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: