博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C++程序设计POJ》《WEEK4 运算符重载 》《第四周-编程填空》
阅读量:4982 次
发布时间:2019-06-12

本文共 4660 字,大约阅读时间需要 15 分钟。

总时间限制:
1000ms
内存限制:
65536kB
描述

下面程序的输出是:

3+4i

5+6i

请补足Complex类的成员函数。不能加成员变量。

#include 
#include
#include
using namespace std;class Complex {private: double r,i;public: void Print() { cout << r << "+" << i << "i" << endl; }
// 在此处补充你的代码
};int main() {    Complex a;    a = "3+4i"; a.Print();    a = "5+6i"; a.Print();    return 0;}
输入
输出
3+4i
5+6i
样例输入
样例输出
3+4i5+6i

 

 

 

 

#include 
#include
#include
using namespace std;class Complex {private: double r, i;public: void Print() { cout << r << "+" << i << "i" << endl; } // 在此处补充你的代码#if 0 void operator=(string s) { //由原型知,若省略第2个参数,则默认从位置0(即第1个字符)起开始查找 int position = s.find("+",0); string firstPart = s.substr(0, position); string secondPart = s.substr(position + 1, s.length() - position - 2); r = atof(firstPart.c_str()); i = atof(secondPart.c_str()); }#endif Complex& operator=(string s) { //由原型知,若省略第2个参数,则默认从位置0(即第1个字符)起开始查找 int position = s.find("+", 0); string firstPart = s.substr(0, position); string secondPart = s.substr(position + 1, s.length() - position - 2); r = atof(firstPart.c_str()); i = atof(secondPart.c_str()); return *this; }};int main() { Complex a; a = "30+40i"; a.Print(); a = "500+6i"; a.Print(); while (1); return 0;}
描述

下面的MyInt类只有一个成员变量。MyInt类内部的部分代码被隐藏了。假设下面的程序能编译通过,且输出结果是:

4,1

请写出被隐藏的部分。(您写的内容必须是能全部放进 MyInt类内部的,MyInt的成员函数里不允许使用静态变量)。

#include 
using namespace std;class MyInt { int nVal; public: MyInt(int n) { nVal = n; } int ReturnVal() { return nVal; }
// 在此处补充你的代码
};int main ()  {    MyInt objInt(10);    objInt-2-1-3;    cout << objInt.ReturnVal();    cout <<",";    objInt-2-1;    cout << objInt.ReturnVal();    return 0;
#include 
using namespace std;class MyInt { int nVal;public: MyInt(int n) { nVal = n; } int ReturnVal() { return nVal; } // 在此处补充你的代码 MyInt& operator-(int w) { nVal -= w; return *this; }};int main() { MyInt objInt(10); objInt - 2 - 1 - 3; cout << objInt.ReturnVal(); cout << ","; objInt - 2 - 1; cout << objInt.ReturnVal(); while (1); return 0;}

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

写一个二维数组类 Array2,使得下面程序的输出结果是:

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

程序:

 

#include 
#include
using namespace std;// 在此处补充你的代码int main() { Array2 a(3,4); int i,j; for( i = 0;i < 3; ++i ) for( j = 0; j < 4; j ++ ) a[i][j] = i * 4 + j; for( i = 0;i < 3; ++i ) { for( j = 0; j < 4; j ++ ) { cout << a(i,j) << ","; } cout << endl; } cout << "next" << endl; Array2 b; b = a; for( i = 0;i < 3; ++i ) { for( j = 0; j < 4; j ++ ) { cout << b[i][j] << ","; } cout << endl; } return 0;}

 

输入

 

输出

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

 

样例输入

 

样例输出

0,1,2,3,4,5,6,7,8,9,10,11,next0,1,2,3,4,5,6,7,8,9,10,11,
#include 
#include
using namespace std;// 在此处补充你的代码class Array2{private: int i; int j; int * a;public: //constructor function Array2() { a = NULL; } Array2(int i_, int j_) { i = i_; j = j_; a = new int[i*j]; } // copy constructor ? is needed??? Array2(Array2 &t) { i = t.i; j = t.j; a = new int[i*j]; memcpy(a, t.a, sizeof(int)*i*j); } // overload [] and = and ( ) Array2 & operator=(const Array2 &t) { if (a != NULL) delete[] a; i = t.i; j = t.j; a = new int[i*j]; memcpy(a, t.a, sizeof(int)*i*j); return *this; } ~Array2() { if (a != NULL) delete[] a; } // 将返回值设为int的指针,则可以应用第二个【】,不用重载第二个【】操作符 int *operator[] (int i_) { return a + i_*j; // 觉得有问题 } int &operator() (int i_, int j_) { return a[i_*j + j_]; } };int main() { Array2 a(3, 4); int i, j; for (i = 0; i < 3; ++i) for (j = 0; j < 4; j++) a[i][j] = i * 4 + j; for (i = 0; i < 3; ++i) { for (j = 0; j < 4; j++) { cout << a(i, j) << ","; } cout << endl; } cout << "next" << endl; Array2 b; b = a; for (i = 0; i < 3; ++i) { for (j = 0; j < 4; j++) { cout << b[i][j] << ","; } cout << endl; } while (1); return 0;}

 

转载于:https://www.cnblogs.com/focus-z/p/11029252.html

你可能感兴趣的文章
MVC VIEW 时间格式控制
查看>>
包装设计模式
查看>>
poj 1144 Network (割点)
查看>>
前端 HTML
查看>>
[LeetCode] 82 Remove Duplicates from Sorted List II
查看>>
2018.10.26 操作系统中的线程定义以及理解
查看>>
《洛克菲勒留给儿子的38封信》 第二封:运气靠策划
查看>>
笔记 js 基础笔记(Dom操作)
查看>>
struts配置请求后缀,将.action改为.do、.doaction_2015.01.04
查看>>
LOJ#565. 「LibreOJ Round #10」mathematican 的二进制 分治,FFT,概率期望
查看>>
C# 集合
查看>>
lucene学习笔记、资料
查看>>
js获取和设置DOM样式函数cssStyle(类似于jquery的$(elem).css())
查看>>
Agc011_F Train Service Planning
查看>>
三个问题
查看>>
一对一双向外键关联
查看>>
EL表达式概述
查看>>
javascript面向对象学习笔记(一)——继承
查看>>
python调试
查看>>
Selenium3+Python3_02:元素定位
查看>>