当前位置: 首页 > news >正文

东阳网站建设中医风格网站模板

东阳网站建设,中医风格网站模板,wordpress代码高亮在线转换工具,北京律师微网站怎么做先前回顾 在【C进阶】 遵循TDD原则#xff0c;实现平面向量类(Vec2D)中我们初步实现了Vec2D内容#xff0c;现在做出一定的改进#xff1a; 实现Vec2D的一半二元算数运算符重载 1、 - (两个Vec2D对象运算以及1个Vec2D对象与一个double数运算) 2、*(点乘和数乘) 同时将之前…先前回顾 在【C进阶】 遵循TDD原则实现平面向量类(Vec2D)中我们初步实现了Vec2D内容现在做出一定的改进 实现Vec2D的一半二元算数运算符重载 1、 - (两个Vec2D对象运算以及1个Vec2D对象与一个double数运算) 2、*(点乘和数乘) 同时将之前涉及对象拷贝的函数用传引用的方式进行修改。 注意若有对象拷贝则需要传引用如果只是简单的值拷贝则不需要传引用。 知识点 先看看我们一般是怎么调用二元运算符 注意最后一个是个“错误”的写法因为这个不属于成员函数的写法z不是Vec2D类的对象。 但是常识告诉我们这样写和d的写法应该是一样的。 Vec2D a{1,2}, b{3, 6}; double z {1.3};Vec2D c a b; // a.operator(b); à Vec2D Vec2D::operator(Vec2D);Vec2D d a z; // a.operator(z); à Vec2D Vec2D::operator(double);Vec2D e z b; // z.operator(b); à Vec2D double::operator(Vec2D); 错误下面是这几个重载函数的原型注意最后一个是个友元函数关于友元函数记不清的请回顾https://blog.csdn.net/qq_42604176/article/details/109537139 struct Vec2D {Vec2D operator (Vec2D); //成员函数Vec2D operator (double); //成员函数friend Vec2D operator (double, Vec2D); //非成员(友元)函数};Vec2D operator (double, Vec2D) { // Do something} 修改部分 1、首先完善h文件 #pragma once #include iostream #include string #include cmath #include exception class Vec2D { private:double x_;double y_; public:Vec2D();Vec2D(double , double );~Vec2D();// 将向量转换为字符串表达形式std::string toString();// 向量加法Vec2D add(const Vec2D secondVec2D);//与数值相加Vec2D add(double num);//加法函数的重载Vec2D operator (const Vec2D secondVec2D);Vec2D operator (const double num);// 读取或修改向量元素double at(const int index);// 向量减法Vec2D subtract(const Vec2D secondVec2D);//与数值相减Vec2D subtract(const double num);//减法函数的重载Vec2D operator -(const Vec2D secondVec2D);Vec2D operator -(const double num);// 向量点积double dot(const Vec2D secondVec2D);// 向量数乘Vec2D multiply(const double multiplier);//向量乘法的重载double operator *(const Vec2D secondVec2D);Vec2D operator *(const double multiplier);//补充一个乘法友元函数friend Vec2D operator *(const double multiplier,Vec2D vec2d);// 向量求负值Vec2D negative();// 向量自增1Vec2D increase();// 向量自减1Vec2D decrease();// 求向量的范数(长度)double magnitude();// 求Vec2D与x轴的夹角double direction();// 比较两个向量的长度。如果firstVec2D小于secondVec2D返回-1若大于则返回1若相等则返回0int compareTo(Vec2D secondVec2D); };2、在cpp文件中补充函数的具体细节 #include Vec2D.h Vec2D::Vec2D() {x_ 0.0;y_ 0.0; }Vec2D::Vec2D(double x, double y) {x_ x;y_ y; }Vec2D::~Vec2D() {}// 将向量转换为字符串表达形式 std::string Vec2D::toString() {// TODO: 在此处添加实现代码.return std::string(( std::to_string(x_) , std::to_string(y_) )); }// 向量加法 Vec2D Vec2D::add(const Vec2D secondVec2D) {// TODO: 在此处添加实现代码.return Vec2D(x_ secondVec2D.x_ , y_ secondVec2D.y_); } //与数值相加 Vec2D Vec2D::add(double num) {// TODO: 在此处添加实现代码.return Vec2D(this-x_ num , this-y_ num); }//加法重载函数 Vec2D Vec2D::operator (const Vec2D secondVec2D) {return this-add(secondVec2D); } Vec2D Vec2D::operator (const double num) {return this-add(num); }// 向量减法 Vec2D Vec2D::subtract(const Vec2D secondVec2D) {// TODO: 在此处添加实现代码.return Vec2D(x_ - secondVec2D.x_ , y_ - secondVec2D.y_); } // 向量减数 Vec2D Vec2D::subtract(const double num) {// TODO: 在此处添加实现代码.return Vec2D(this-x_ - num , this-y_ - num); }//减法重载函数 Vec2D Vec2D::operator -(const Vec2D secondVec2D) {return this-subtract(secondVec2D); } Vec2D Vec2D::operator -(const double num) {return this-subtract(num); }// 向量点积 double Vec2D::dot(const Vec2D secondVec2D) {// TODO: 在此处添加实现代码.return (x_ * secondVec2D.x_ y_ * secondVec2D.y_); }// 向量数乘 Vec2D Vec2D::multiply(const double multiplier) {// TODO: 在此处添加实现代码.return Vec2D(x_ * multiplier ,y_ * multiplier); }//乘法重载函数 Vec2D Vec2D::operator *(const double num) {return this-multiply(num); } double Vec2D::operator *(const Vec2D secondVec2D) {return this-dot(secondVec2D); } //乘法友元函数不是Vec2D的成员函数 Vec2D operator *(const double multiplier,Vec2D vec2d) {return vec2d.multiply(multiplier); }// 向量求负值 Vec2D Vec2D::negative() {// TODO: 在此处添加实现代码.return Vec2D( -x_ , -y_); }// 向量自增1 Vec2D Vec2D::increase() {x_;y_;// TODO: 在此处添加实现代码.return (*this); }// 向量自减1 Vec2D Vec2D::decrease() {x_--;y_--;// TODO: 在此处添加实现代码.return (*this); }// 求向量的范数(长度) double Vec2D::magnitude() {// TODO: 在此处添加实现代码.return sqrt(x_ * x_ y_ * y_); }// 求Vec2D与x轴的夹角 double Vec2D::direction() {// TODO: 在此处添加实现代码.return atan(y_ / x_); }// 比较两个向量的长度。如果firstVec2D小于secondVec2D返回-1若大于则返回1若相等则返回0 int Vec2D::compareTo(Vec2D secondVec2D) {// TODO: 在此处添加实现代码.double m1 this-magnitude();double m2 secondVec2D.magnitude();if(abs(m1 - m2) 1e-10)return 0;elsereturn (m1 m2 ? 1 : -1); }// 读取或修改向量元素 double Vec2D::at(const int index) {if( 0 index)return x_;else if(1 index)return y_;//使用异常处理的方式抛出异常并且打印携带信息elsethrow std::out_of_range(at() only accept 1 or 2 as parameter);// TODO: 在此处添加实现代码.// TODO: 在此处插入 return 语句 }3、运行测试函数 #include iostream #include Vec2D.h using std::cout; using std::endl;int main() {//创建向量对象Vec2D v1{ 3,5 }, v2{ 4,6 };//向量转为字符串cout v1 v1.toString() endl;cout v2 v2.toString() endl;//向量加法: 向量 向量 向量 数//Vec2D v3 v1.add(v2);//Vec2D v4 v3.add(10.0);//使用重载operator函数Vec2D v3 v1 v2;Vec2D v4 v3 10.0;cout v3 v3.toString() endl;cout v4 v4.toString() endl;//向量减法向量点积向量数乘//Vec2D v5 v2.subtract(v1);//double v6 v2.dot(v1); //两个向量的点积是一个数//Vec2D v7 v3.multiply(2.1);//使用重载operator函数Vec2D v5 v2 - v1;double v6 v2 * v1; //两个向量的点积是一个数Vec2D v7 v3 * 2.1;cout v2 - v1 v5.toString() endl;cout v2 * v1 v6 endl;cout v3 * 2.1 v7.toString() endl;cout 2.1 * v3 (2.1 * v3).toString() endl; //这里使用的是友元函数//向量求负值Vec2D v8 v2.negative();cout -v2 v8.toString() endl;//向量自增/自减cout v8 v8.increase().toString() endl;cout --v2 v2.decrease().toString() endl;//读取或者修改向量元素cout v1.x_ v1.at(0) endl;cout v1.y_ v1.at(1) endl;//向量的长度magnitude 和角度directioncout v1.magnitude v1.magnitude() endl;cout v1.direction v1.direction() endl;//比较两个向量cout v1 compare v2 : v1.compareTo(v2) endl;return 0; }4、得到测试结果
http://www.zqtcl.cn/news/499733/

相关文章:

  • 加强网站建设的制度wordpress如何清空
  • 轻松筹 的网站价格做网站建设意识形态
  • 有.net源码如何做网站湖南宣传片制作公司
  • dede网站模板怎么安装教程青岛需要做网站的公司
  • 静态双语企业网站后台源码北京网站关键词优化
  • 石家庄手机网站建设公司wordpress侧边栏显示子分类文字数
  • 公司网站客户案例个人做 网站2019
  • 个人网站怎么申请销售策划
  • 网站被黑 禁止js跳转企业为什么要建立集团
  • 建设网站的各种问题上海品牌女装排行榜前十名
  • seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技商城网站备案能通过吗
  • 江门网站建设推广策划网站改版的宣传词
  • 网站建设三大部分国外购物平台网页界面设计
  • 公司商城网站建设方案wordpress旗舰
  • 京东云服务器怎么做网站企业宣传网站怎么做
  • 如何自学网站建设云南网爱我国防知识竞赛
  • 什么网站可以做投资设计接单
  • 网站内容批量替换桐乡网站制作
  • 怎么免费做网站教程制作xml网站地图文件
  • 广西智能网站建设哪家好网红商城
  • 关于建设网站的情况说明书wordpress 在线检测
  • 帝国cms 网站迁移错版怎样做心理咨询网站
  • 烟台建网站wordpress重写规则
  • 上海网站建设怎么赚钱平顶山网站建设服务公司
  • 导航网站如何被百度收录广告设计在线设计
  • 雪域什么网站是做电影的苏州优化方式
  • 设计网站多少钱手机百度助手
  • 驾校网上约车网站开发不会做网站如何做seo
  • 企业做推广可以发哪些网站宜兴埠网站建设
  • 网站后台文章添加成功 不显示公司设计网站建设合同