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

PhpPythonC++圆类的实现(OOP)

哎......被投诉了 😭😭😭😭😭

其实也不是小编不更,这不是期末了吗(zhaojiekou~~),而且最近学的信息收集和ctf感觉好像没找到啥能更的(不过最经还是在考虑更一下CTF的密码学的)然后就被催更了  @_# 蒽

                                                        

但是天还是无绝人之路的,他丢了一道面向对象的题目给我,好家伙还要用c艹来写

好险网安还是教了php和python的,那就来这两个版本都来试一下吧

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

题目:

先是Python_Version:

import math
pi = math.pi
class circle():def __init__(self,r,x,y):self.r=rself.x=xself.y=ydef __del__(self):print("This object is gonna destruct")def circuference(self):print("circuference = ",2*pi*self.r)def area(self):print("area = ",pi*(self.r)**2)outprint=circle(4,0,0)
outprint.circuference()
outprint.area()
del outprint

以下就来逐行讲解吧:

1.构造函数,用来初始化对象的属性,这里是将传入的r赋给类中的属性

 def __init__(self,r,x,y):self.r=rself.x=xself.y=y

2.析构函数,用于在对象被销毁时执行一些清理工作

def __del__(self):print("This object is gonna destruct")

3.然后就是写输出周长和面积的两个函数

def circuference(self):print("circuference = ",2*pi*self.r)def area(self):print("area = ",pi*(self.r)**2)

(当然了,这里也可以写成return的形式,然后print,这里我就偷个懒啦,嘻嘻)

4.最后就是创建对象,调用,销毁了

outprint=circle(4,0,0)
outprint.circuference()
outprint.area()
del outprint

(这里我取得半径是4,当然你们可以任意取)

这样就完成了一个圆类得目标,以下是输出:

接下来就是PHP_Version啦

<?php
class circle{public $r,$x,$y;function __construct(int $r,int $x,int $y){$this->r=$r;$this->x=$x;$this->y=$y;} function __destruct(){echo "</br>";echo "this object is gonna destruct";}function circumference(){echo  "circumference = ";print 2*pi()*$this->r;} function area(){echo "area = ";print (pi()*($this->r)**2);}
}$outprint=new circle(4,0,0);
$outprint->circumference();
echo "</br>";
$outprint->area();
unset($outprint);?>

开始之前不得不感叹一下还是python好用,简单又简洁

1.先是构造,和析构函数了,和上面的python类似 (记得echo “</br>”哦,php可不会自动换行)

 public $r,$x,$y;function __construct(int $r,int $x,int $y){$this->r=$r;$this->x=$x;$this->y=$y;} function __destruct(){echo "</br>";echo "this object is gonna destruct";}

2.然后就是写周长和面积得的计算了

function circumference(){echo  "circumference = ";print 2*pi()*$this->r;} function area(){echo "area = ";print (pi()*($this->r)**2);}
}

这里的pi是有()的哦,而且属性的调用php是$this->   而python是self.    这个可不要记混!!

3.然后就是创建,调用,销毁,和上面一样:

$outprint=new circle(4,0,0);
$outprint->circumference();
echo "</br>";
$outprint->area();
unset($outprint);

这样就完成了php的圆类实现了

以上就是两种编程语言对圆类的实现,当然了我的朋友是用c艹写的 (她写的太强啦,我看不懂wuuwu~~~)

#include <iostream>
using namespace std;
class Circle
{
private:int r;int x;int y;float c;float s;public:Circle(int a, int b, int c) : r(a), x(b), y(c) {}~Circle() { cout << "析构函数的调用" << endl; }void Getc(){c = 3.14 * r * 2;}void Gets(){s = 3.14 * r * r;}void show(){cout << "周长:" << c << endl<< "面积:" << s << endl;}
};
int main()
{Circle c1(1, 0, 0);c1.Getc();c1.Gets();c1.show();system("pause");return 0;
}

等到寒假时候学了c艹应该就能看懂了(笑死寒假想摆烂)以上就是对圆类的三种语言的实现啦

最近在学CTF那么下一篇就来更CTF的Crypto吧   ~~!!!~~~

        ​​​​​​​        ​​​​​​​        

http://www.lryc.cn/news/277523.html

相关文章:

  • OpenSSL升级版本
  • 基于sprinmgboot实习管理系统源码和论文
  • 图像分类任务的可视化脚本,生成类别json字典文件
  • Adding Conditional Control to Text-to-Image Diffusion Models——【代码复现】
  • java-Exchanger详解
  • ‘再战千问:启程你的提升之旅‘,如何更好地提问?
  • java SSM社区文化服务管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • go执行静态二进制文件和执行动态库文件
  • 通过示例解释序列化和反序列化-Java
  • k8s源码阅读环境配置
  • Java JDBC整合(概述,搭建,PreparedStatement和Statement,结果集处理)
  • Nginx 负载均衡集群 节点健康检查
  • uniapp 多轴图,双轴图,指定哪几个数据在哪个轴上显示
  • Kotlin 协程 supervisorScope {} 运行崩溃解决
  • 【Spring 篇】JdbcTemplate:轻松驾驭数据库的魔法工具
  • Web开发SpringBoot SpringMVC Spring的学习笔记(包含开发常用工具类)
  • 微服务下的SpringSecurity认证端
  • 苹果电脑菜单栏应用管理软件Bartender 4 mac软件特点
  • 笙默考试管理系统-MyExamTest----codemirror(65)
  • git在本地创建dev分支并和远程的dev分支关联起来
  • 【C++】深入了解构造函数之初始化列表
  • 差分--差分数组快速计算L到R值相加后的数组
  • 《NLP入门到精通》栏目导读(01/2)
  • three.js实现电子围栏效果(纹理贴图)
  • DHSP和DNS
  • Python冒号的解释
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端鉴权拦截器实现
  • 固乔快递查询助手:批量、快速、全面的快递信息查询软件
  • C#,归并排序算法(Merge Sort Algorithm)的源代码及数据可视化
  • Linux的网络服务DHCP