#include<iostream>
#include<string>
//双目运算符:运算符作用域两个操作数
//定义一个复数类,重载“+”,作为复数类的成员函数,使这个运算符能直接完成两个复数的加法运算,以及一个复数与一个实数的加法运算
using namespace std;
class Complex
{
public:
Complex(int r = 0, int i = 0)
{
m_r = r;
m_i = i;
}
Complex operator+(Complex complex);
void Print();
~Complex(){}
private:
int m_r;
int m_i;
}; Complex Complex::operator+(Complex complex)
{
Complex t;
t.m_r = m_r + complex.m_r;
t.m_i = m_i + complex.m_i;
return t;
} void Complex::Print()
{
if (m_i < 0)
{
cout << m_r << m_i << "i" << endl;
}
else
cout << m_r << "+" << m_i << "i" << endl;
}
int main()
{
Complex c1(10, 13), c2(9, 2), c3;
c1.Print();
c2.Print();
c3 = c1 + c2;
c3.Print();
system("pause");
return 0;
}

编程题

封装一个CStudent类,用来描述学生的属性和行为。具体要求如下。

1.学生有姓名,籍贯,学号,年龄,成绩五个成员数据,编写构造函数,拷贝构造函数,同时编写Display(),成员函数显示学生的信息。
2.编写“+”运算符重载函数,使CStudent类的两个对象相加返回两个对象总成绩相加的和。
3.编写主函数,定义两个CStudent类对象,分别调用成员函数Display(),显示两个对象的学生信息,同时显示两个对象相加的结果

#include<iostream>
#include<string>
using namespace std;
class Cstudent
{
public:
Cstudent(string name="", string jiguan="", int id=0, int age=0, int score=0)
{
m_name = name;
m_jiguan = jiguan;
m_ID = id;
m_Age = age;
m_Score = score;
}
//拷贝构造函数
Cstudent(const Cstudent& p)
{
m_name = p.m_name;
m_jiguan = p.m_jiguan;
m_ID = p.m_ID;
m_Age = p.m_Age;
m_Score = p.m_Score;
}
int getScore()
{
return m_Score;
}
void Display()
{
cout << "姓名:" << m_name << "\t" << "籍贯:" << m_jiguan << "\t" << "学号:" << m_ID << "\t" << "年龄:" << m_Age << "\t" << "成绩:" << m_Score << endl;
}
Cstudent operator+(Cstudent student);
private:
string m_name;
string m_jiguan;
int m_ID;
int m_Age;
int m_Score;
}; Cstudent Cstudent::operator+(Cstudent student)
{
Cstudent s1;
s1.m_Score = m_Score + student.m_Score;
return s1;
} int main()
{
Cstudent c1("JIN", "果川",1, 18, 98);
Cstudent c2("SUGA", "大邱", 2, 17, 100);
Cstudent c3;
c1.Display();
c2.Display();
c3 = c1 + c2;
cout << "成绩总和为:" <<c3.getScore()<< endl;
system("pause");
return 0;
}

2.设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符”+”,以实现求两个三角形对象的面积之和

#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(double s1 = 0, double s2 = 0, double s3 = 0, double area=0)
{
m_s1 = s1;
m_s2 = s2;
m_s3 = s3;
m_area = area;
}
double getS1()
{
return m_s1;
}
double getS2()
{
return m_s2;
}
double getS3()
{
return m_s3;
}
double getArea()
{
return m_area;
}
Triangle operator+(Triangle triangle);
private:
double m_s1;
double m_s2;
double m_s3;
double m_area;
};
Triangle Triangle::operator+(Triangle triangle)
{
Triangle t1;
double p = (m_s1 + m_s2 + m_s3)/2;
double p1 = (triangle.m_s1 + triangle.m_s2 + triangle.m_s3)/2;
double d= p*(p - m_s1) * (p - m_s2) * (p - m_s3);
double d1 = p1 * (p1 - triangle.m_s1) * (p1 - triangle.m_s2) * (p1 - triangle.m_s3);
double area = sqrt(d);
double area1 = sqrt(d1);
t1.m_area = area + area1;
return t1;
}
int main()
{
Triangle c1(3,4,5), c2(6,8,10),c3;
c3 = c1 + c2;
cout << "两个三角形面积之和为:" << c3.getArea() << endl;
system("pause");
return 0;
}

学习记录--C++多态性简答+编程题的更多相关文章

  1. buu学习记录(下)(做题是不可能做题的)

    目录: easy_calc 禁止套娃 EasyWeb Babysqli Easyweb easy_serialize_php 我有一个数据库 SSRFme 枯燥的抽奖 EasyPHP 题目解析: ea ...

  2. python核心编程学习记录之函数与函数式编程

    @func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...

  3. Shell及Linux常见易错题目题库-Shell/Linux-选择、简答、判断、编程

    1.以下不合法的shell头是(不合法指运行会报错)(   ) A. #!/bin/bash B. #-/bin/bash C. !#/bin/bash 答案:C 2.if [ $2 -a $2 = ...

  4. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

  5. 学习记录-java基础部分(一)

    学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...

  6. Java 8 学习记录

    Java 8 学习记录 官方文档 https://docs.oracle.com/javase/8/ https://docs.oracle.com/javase/8/docs/index.html ...

  7. java后端学习记录2019

    学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...

  8. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  9. UWP学习记录3-设计和UI之样式

    UWP学习记录3-设计和UI之样式 1.颜色 在系统的“设置”>“个性化”>“颜色”里,提供了主题色选择.选定主题色后,会根据颜色亮度的 HSB 值创建浅色和深色的主题色. 应用可使用阴影 ...

  10. UWP学习记录1-开端

    UWP学习记录1-开端 1.背景 针对不同基础的人,学习的路线自然是不同的.这篇文章记录的是我个人的学习路线,或者说笔记.我对自己的技术状态的定义是: A.有很好的windows平台编程基础: B.有 ...

随机推荐

  1. Python 字典类型

    1.由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复.程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典.实 ...

  2. vue点击遮罩层阴影区域隐藏

    <div class="overlay" v-if="mask" @click="closeMaskTap($event)"> ...

  3. 【Java】zuul

    报错 com.netflix.zuul.exception.ZuulException: Hystrix Readed time out 解决办法,zuul模块的yml配置文件增加 ribbon: C ...

  4. iOS 高级面试题

    面试题 iOS 基础题 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员? 讲一下atomic的实现机制:为什么不能保证绝对的线程安全(最好可以结合场景来说)? ...

  5. TFLCD编程过程中遇到的问题之.\Objects\EXTI_Project.axf: Error: L6218E: Undefined symbol POINT_COLOR (referred from tflcd.o).

    在TFLCD屏幕中遇到的问题及解决方案 1.问题提出 在对正点原子提供的有关TFLCD屏幕做移植过程中,编译过程中没有报错,但是链接时就出现了报错,报错信息如下图所示: 像这种错误,无法定义到错误所在 ...

  6. EF存储过程

    select * from Goods --创建存储过程create proc sp_Show( @index int, --当前页 @size int, --每页大小 @totalcount int ...

  7. WEB攻击与防御技术 pikachu——文件包含下载上传漏洞

    文件包含漏洞 一.LOCAL 上来就是一个选择,当我们选择一个球员的时候,如图所示,url会提交一个get请求 如果这个服务器架设在linux上我们就可以一直../../../../../到根目录然后 ...

  8. ethcat开发记录 二

    SOEM移植到stm32f407+LAN8720硬件上的注意点 1.LAN8720的PHY地址问题. 2.LAN8720芯片在上电后要对复位引脚操作. 3.使能LAN8720的混杂模式,在新的HAL库 ...

  9. python 项目启动

    批量执行requirements.txt文件: pip install -r requirements.txt 清华镜像源安装: pip install -i https://pypi.tuna.ts ...

  10. 在mysql中正常查询的句子,在C#中出错,原因是定义了变量。

    在C#中 查询一样. 运行报错 Fatal error encountered during command execution." 命令执行过程中碰到的致命错误." MySqlE ...