下载此文档

2.4 运算符重载 (第二章 C 面向对象程序设计).doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
34 、运算符重载的含义是什么?是否所有的运算符都可以重载? 答:运算符重载是对已有的运算符赋予多重含义,同一个运算符作用于不用类型的数据导致不同行为。不是。在 C++ 语言中除了(点运算符( .) 、作用域运算符( ::) 、条件运算符(? :) 、成员指针运算符( *) 、编译预处理命令的开始符号( #) )五个运算符不能被重载外,其他运算符均可重载。 35 、运算符重载有哪两种形式?这两种形式有何区别? 答:运算符重载有成员函数和友元函数两种形式。区别: 运算符作为成员函数重载时的参数比作为友元函数重载时少一个。例如使用成员函数重载双目运算符时只用一个参数,而使用友元函数重载时要用两个参数。 36 、转换函数的作用是什么? 答: 1 、支持混合类型表达式 2 、转换减少所需操作符的数目 37 、分析下列程序的结果。#include<> class CMatrix { public: cMatrix(int r,int c) { row=r;col=c; element=new double[row*col]; } double& operator() (int x,int y) { return element[col*(x-1)+y-1]; } double& operator() (int x,int y) const { return element[col*(x-1)+y-1]; } ~CMatrix() {delete [] element;} private: double *element; int row,col; }; void main() { CMatrix m(5,8); for(int i=;i<5;i++) m(i,1)=i+5; for(i=0;i<5;i++) cout<<m(i,1)<< ”,”; cout<<endl; } 运行结果: 5,6,7,8,9, 38、定义一个复数类, 通过重载运算符:=、+=、+、-、*、/, 直接实现两个复数之间的各种运算。编写一个完整的程序( 包括测试各种运算符的程序部分)。提示: 两复数相乘的计算公式为:( a+bi ) *(c+di)=(ac-bd)+(ab+bc)I , 而两复数相除的计算公式为:( a+bi ) /(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i 。#include <iostream> using namespace std; plex { public: complex(int i=0, int j=0):real(i), image(j) {} complex(plex &a): real(), image() {} complex& operator=(plex &a) { real = ; image = ; return *this; } complex& operator+=(plex &a) { real = real + ; image = image + ; return *this; } void display() { cout << "(" << real << "," << image <<

2.4 运算符重载 (第二章 C 面向对象程序设计) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小76 KB
  • 时间2017-01-24