【2017年整理】实验七-运算符重载

上传人:爱****1 文档编号:952782 上传时间:2017-05-23 格式:DOC 页数:6 大小:51.50KB
返回 下载 相关 举报
【2017年整理】实验七-运算符重载_第1页
第1页 / 共6页
【2017年整理】实验七-运算符重载_第2页
第2页 / 共6页
【2017年整理】实验七-运算符重载_第3页
第3页 / 共6页
【2017年整理】实验七-运算符重载_第4页
第4页 / 共6页
【2017年整理】实验七-运算符重载_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《【2017年整理】实验七-运算符重载》由会员分享,可在线阅读,更多相关《【2017年整理】实验七-运算符重载(6页珍藏版)》请在金锄头文库上搜索。

1、2011 学年春季学期 C+ 程序设计 信息(数学) 150132009044 王婷 成绩: 中国海洋大学数学科学学院 0 / 6实验 07 多态性-运算符的重载2011-05-21/Vec3f.h#ifndef _VEC3F_H_#define _VEC3F_H_#include #include using namespace std;class Vec3fprivate:float x;float y;float z;public:Vec3f(float xx=0.0, float yy=0.0, float zz=0.0);Vec3f(Vec3f &v);Vec3f();void se

2、t(float xx, float yy, float zz);float getX() return x; float getY() return y; float getZ() return z; float Dot3() const; /内积Vec3f Cross3(const Vec3f &v) ; /外积Vec3f normalize(Vec3f &v) const; /模长float getLength(Vec3f v1,Vec3f v2); /单位化Vec3f& operator=(const Vec3f &v); /重载为成员函数Vec3f& operator+=(const

3、Vec3f &v);Vec3f& operator-=(const Vec3f &v);Vec3f& operator(Vec3f &v);Vec3f& operator+(); /前置Vec3f& operator-();Vec3f operator+(int);/后置Vec3f operator-(int);void show() const;2011 学年春季学期 C+ 程序设计 信息(数学) 150132009044 王婷 成绩: 中国海洋大学数学科学学院 1 / 6friend Vec3f operator+(const Vec3f &v1,const Vec3f &v2);/重载为

4、全局(友元)函数friend Vec3f operator-(const Vec3f &v1,const Vec3f &v2);friend Vec3f operator*(const Vec3f &v1,float t);friend Vec3f operator/(const Vec3f &v1,float t);friend ostream& operator(istream &in, Vec3f &v);#endif/Vec3.cpp#include Vec3f.h#include #include #include #include using namespace std;Vec3f

5、:Vec3f(float xx/*=0.0*/, float yy/*=0.0*/, float zz/*=0.0*/):x(xx),y(yy),z(zz)Vec3f:Vec3f(Vec3f &v)x = v.x;y = v.y;z = v.z;Vec3f:Vec3f()void Vec3f:set(float xx, float yy, float zz)x = xx;y = yy;z = zz;float Vec3f:Dot3() const return sqrt(x*x+y*y+z*z);Vec3f Vec3f:Cross3(const Vec3f &v) float nx = y *

6、 v.z - z * v.y;float ny = z * v.x - x * v.z;float nz = x * v.y - y * v.x;return Vec3f(nx, ny, nz); 2011 学年春季学期 C+ 程序设计 信息(数学) 150132009044 王婷 成绩: 中国海洋大学数学科学学院 2 / 6Vec3f Vec3f:normalize(Vec3f &v) constreturn v/v.norm();float Vec3f:getLength(Vec3f v1,Vec3f v2)Vec3f v3(v1-v2); return sqrt(v3.norm();vo

7、id Vec3f:show() const cout (istream &in, Vec3f &v) in v.x v.y v.z;return in;/test.cpp#includeVec3f.h#includeusing std:cin;using std:cout;int main()Vec3f v1,v2;cout v1 v2;cout v1 v2;Vec3f v3(v1);Vec3f v4;v4=v2+v3;cout v4= ;v4.show();cout v4内积为: v4.Dot3() endl;Vec3f v5;v5=v2-v1;cout v5= ;v5.show();cout v4和 v5的外积为: v5.Cross3(v4);Vec3f v6;v6=v1*3;cout v6= ;v6.show();Vec3f v7;v7=v1/2;cout v7= ;v7.show();Vec3f v8;v8=v1/0;cout v8= ;2011 学年春季学期 C+ 程序设计 信息(数学) 150132009044 王婷 成绩: 中国海洋大学数学科学学院 5 / 6v8.show();return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 实验/测试

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号