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

中企动力做过的网站厦门网站推广步骤机构

中企动力做过的网站,厦门网站推广步骤机构,网站内容怎么写,深圳vi设计多少钱文章目录一、概念二、程序示例1. 加减乘除重载2. 赋值运算符重载3. 递增递减运算符重载4. 关系运算符重载5. 左移运算符重载6. 函数调用运算符重载一、概念 C中运算符重载是为了实现对象之间进行各种运算的特定语法#xff0c;在某些特定的场合起到重要的作用#xff0c;新建… 文章目录一、概念二、程序示例1. 加减乘除重载2. 赋值运算符重载3. 递增递减运算符重载4. 关系运算符重载5. 左移运算符重载6. 函数调用运算符重载一、概念 C中运算符重载是为了实现对象之间进行各种运算的特定语法在某些特定的场合起到重要的作用新建重载方法需用operator关键字进行修饰。 可以重载运算符包括、-、*、\、赋值运算符、左移运算符、递增运算符、递减运算符- -、关系运算符、函数调用运算符等。 运算符重载需要遵守以下规则 1 重载时不能违法运算符原来的句法规则。 2 只能重载C定义的运算符。 3 不能改变运算符原有的优先级。 4 运算符的结合性不能被改变。 5 不能进行重载的运算符成员运算符(.)()条件运算符sizeof、强制类型转换运算符。 6 运算符的目数又称“元数”即运算符所需要的操作数的数目不能被改变。 7 当重载“”、“[]、“-”、时运算符重载函数必须被声明为类成员。 二、程序示例 1. 加减乘除重载 #includeiostream using namespace std;class MyFloat {//成员函数重载运算符 public://MyFloat operator(MyFloat myf)//{// MyFloat temp;// temp.N1 this-N1 myf.N1;// temp.N2 this-N2 myf.N2;// return temp;//}MyFloat operator-(MyFloat myf){MyFloat temp;temp.N1 this-N1 - myf.N1;temp.N2 this-N2 - myf.N2;return temp;}MyFloat operator*(MyFloat myf){MyFloat temp;temp.N1 this-N1 * myf.N1;temp.N2 this-N2 * myf.N2;return temp;}MyFloat operator/(MyFloat myf){MyFloat temp;temp.N1 this-N1 / myf.N1;temp.N2 this-N2 / myf.N2;return temp;}public:float N1;float N2; };//全局函数重载运算符 MyFloat operator(MyFloat Myf1, MyFloat Myf2) {MyFloat temp;temp.N1 Myf1.N1 Myf2.N1;temp.N2 Myf1.N2 Myf2.N2;return temp; }MyFloat operator(MyFloat Myf1, int N) {MyFloat temp;temp.N1 Myf1.N1 N;temp.N2 Myf1.N2 N;return temp; }int main() {MyFloat myf1;myf1.N1 float(3.6);myf1.N2 float(3.4);MyFloat myf2;myf2.N1 float(3.6);myf2.N2 float(3.4);/*MyFloat myf3 myf1.operator(myf2);*///本质写法/*MyFloat myf3 operator(myf1, myf2);*/MyFloat myf3 myf1 myf2;//简化写法MyFloat myf31 myf1 1;MyFloat myf4 myf1 - myf2;MyFloat myf5 myf1 * myf2;MyFloat myf6 myf1 / myf2;cout myf3.N1 myf3.N2 endl;cout myf31.N1 myf31.N2 endl;cout myf4.N1 myf4.N2 endl;cout myf5.N1 myf5.N2 endl;cout myf6.N1 myf6.N2 endl; }7.2 6.8 4.6 4.4 0 0 12.96 11.56 1 12. 赋值运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N new float(n);}//赋值运算符MyFloat operator(MyFloat myf){//先判断是否有堆区的属性if (N ! NULL){delete N;N NULL;}//深拷贝N new float(*myf.N);return *this;}//如果不加赋值运算符重载对象的赋值操作会引发内存重复释放的异常。~MyFloat(){if (N ! NULL){delete N;N NULL;}}float *N; };int main() {MyFloat myf1(1.1415);MyFloat myf2(2.1415);MyFloat myf3(3.1415);myf3 myf2 myf1;cout *myf3.N endl;;cout *myf2.N endl;;}3. 递增递减运算符重载 #includeiostream using namespace std;class MyFloat {friend ostream operator(ostream cout, MyFloat myf); public:MyFloat(){N 3.1415;}//重载前置运算符返回类型为引用是因为如果不加返回值属于值类型重载函数运行完后会销毁//运行完后N的值始终只会加一次1,如果再调用重载N的值不会一直加1MyFloat operator(){//先进行计算N;return *this;}//重载后置运算符,int代表占位参数用于区分前置后置MyFloat operator(int){//先记录当时的结果MyFloat temp *this;//后递增N;return temp;}//重载前置--运算符MyFloat operator--(){//先进行--计算N--;return *this;}//重载后置--运算符,int代表占位参数用于区分前置后置MyFloat operator--(int){//先记录当时的结果MyFloat temp *this;//后递减N--;return temp;}private:float N; };ostream operator(ostream cout, MyFloat myf) {cout myf.N;return cout; }int main() {//后置重载MyFloat myf;cout myf endl;cout myf endl;cout myf-- endl;cout myf endl;MyFloat myf1;cout myf1 endl;cout (myf1) endl;//又调用一次相当于先调用了一次拷贝构造函数然后再调用重载拷贝构造函数会重新创建一个拷贝的值的内存再运行完后销毁。//如果重载返回值类型不加会直接销毁myf1的拷贝值加会创建一个指针常量一直指向内存中的N返回值也会一直是类中的N而不是拷贝的N的值。cout myf1 endl;cout --myf1 endl;cout myf1 endl; }3.1415 4.1415 4.1415 3.1415 4.1415 4.1415 3.1415 3.14154. 关系运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N n;}//等于运算符bool operator(MyFloat myf){if (this-N myf.N){return true;}else{return false;} }//大于运算符bool operator(MyFloat myf){if (this-N myf.N){return true;}else{return false;}}float N; };int main() {MyFloat myf1(1.1415);MyFloat myf2(1.1415);MyFloat myf3(3.1415);if (myf1 myf2){cout myf1与myf2相等 endl;}if (myf3 myf2){cout myf3大于myf2 endl;} }myf1与myf2相等 myf3大于myf25. 左移运算符重载 #includeiostream using namespace std;class MyFloat {friend ostream operator(ostream cout, MyFloat myf); public:MyFloat(){N 3.1415*N1;}private:float N;float N1 float(2); };//重载左移运算符,只能利用全局函数重载。成员函数重载时会发生cout在右侧。 //ostream类只能用引用的方式声明对象。 ostream operator(ostream cout, MyFloat myf) {cout myf.N;return cout; }int main() {MyFloat myf;cout myf endl;}6.2836. 函数调用运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N n;}//函数调用运算符float operator()(float n1,float n2){return n1 n2;}float N; };int main() {MyFloat myf(0);float c myf(float(1.1415), float(1.1415));//与函数调用相似又称为仿函数cout c endl;cout MyFloat(0)(float(1.1415), float(1.1415)) endl;//匿名对象}
http://www.zqtcl.cn/news/921002/

相关文章:

  • 建外贸网站有效果吗开发电商平台需要多少钱
  • 成都网站建设维护网页制作价格私活
  • 建设银行网站登陆不上做本地的分类信息网站
  • 公司网站建设哪里实惠网页设计作业百度网盘
  • 如何seo网站挣钱不同企业的网络营销网站
  • 自己做网站有什么用网站怎样设计网址
  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特
  • 长治电子商务网站建设中国建设银行总行官方网站
  • 整站营销系统厚街镇网站仿做
  • 舆情分析网站wordpress文章聚合
  • 中国建设银行网站在哪上市cpa自己做网站
  • 网站建设服务支持jquery插件 wordpress
  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件