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

高校网站如何建设论文外国网站怎么做

高校网站如何建设论文,外国网站怎么做,六安网页,公司新成立想要搭建网站怎么做C面向对象的三大特性:封装、继承、多态 具有相同性质的对象,抽象为类 4.1 封装 封装的意义:将属性和行为作为一个整体,表现生活中的事物,并将属性和行为加以权限控制。 4.1.1 类的定义及实例化对象 语法&#xff…

 C++面向对象的三大特性:封装、继承、多态

具有相同性质的对象,抽象为类

4.1 封装

封装的意义:将属性和行为作为一个整体,表现生活中的事物,并将属性和行为加以权限控制。

4.1.1 类的定义及实例化对象

语法:class 类名{访问权限:属性/行为};

类中的属性和行为统称为成员,属性也可以称为成员属性或成员变量,行为也可以称为成员函数或成员方法。

代码如下:

#include <iostream>
using namespace std;//设计一个圆类,求圆的周长
const double PI=3.14;//class代表设计一个类,类后面紧跟的是类名称
class Circle
{//访问权限
public://公共权限//属性//半径int r;//行为:获取圆的周长double calculateZC(){return 2*PI*r;}};int main()
{//实例化:通过圆类,创建具体的圆(对象)Circle c1;//给圆对象的属性进行赋值c1.r=10;cout<<"圆的周长为:"<<c1.calculateZC()<<endl;return 0;
}

输出如下:

4.1.2 访问权限

访问权限分为三种:

  • 公共权限:类内外都可以访问成员
  • 保护权限:类内可以访问成员,类外不能访问
  • 私有权限:类内可以访问成员,类外不能访问

代码如下:

#include <iostream>
using namespace std;class Person
{//公共权限
public:string name;//保护权限
protected:string car;//私有权限
private:int passwd;
public:void func(){name="ddd";car="bench";passwd=4444;}
};
int main()
{//实例化一个对象Person p1;//给圆对象的属性进行赋值p1.name="dddd";//p1.car="paosij";//p1.passwd=1234;return 0;
}

错误示例:修改保护权限和私钥权限的属性。

成员属性设置为私有,可以自己控制读写权限,对于写权限,可以检测数据的有效性。

代码如下:

#include <iostream>
using namespace std;class Person
{
public://设置姓名void setName(string name){m_name=name;}//获取姓名string getName(){return m_name;}//获取年龄int getAge(){return m_age;}//设置偶像void setIdol(string idol){m_idol=idol;}private:string m_name;//姓名 可读可写int m_age=18;//年龄 只读string m_idol;//偶像 只写};
int main()
{//实例化一个对象Person p;//设置姓名p.setName("ddd");//获取姓名cout<<"姓名:"<<p.getName()<<endl;//设置年龄,不存在该函数//p.setAge("ddd");//报错 不存在该成员setAge//p.m_age=23;//报错 无法访问//获取年龄cout<<"年龄:"<<p.getAge()<<endl;//设置偶像p.setIdol("huge");//获取偶像,没有获取函数//cout<<"偶像:"<<p.getIdol()<<endl;//报错 不存在该成员getIdol//cout<<"偶像:"<<p.m_idol()<<endl;//报错 无法访问return 0;
}

错误示例:

4.1.3 struct 与 class

  • struct默认权限为公共
  • class默认权限为私有

错误示例:访问class中默认权限下的成员。

4.1.4 案例1:立方体类

题目:设计立方体类,求出立方体的面积和体积,分别用全局函数和成员函数判断两个立方体是否相等

代码如下:

#include <iostream>
using namespace std;class Cube
{
private://属性:长宽高int l;int w;int h;public://设置\获取属性void setLong(int ll){l=ll;}int getLong(){return l;}void setWidth(int ww){w=ww;}int getWidth(){return w;}void setHeight(int hh){h=hh;}int getHeight(){return h;}//方法:计算面积、体积、判断两个立方体是否相等int getSquare(){return 2*(l*h+h*w+h*w);}int getVolume(){return l*w*h;}//利用成员函数判断两个立方体是否相等void isEqual(Cube &c){if(l==c.getLong() && w==c.getWidth() && h==c.getHeight()){cout<<"两个立方体相同"<<endl;}else{cout<<"两个立方体不同"<<endl;}}
};//利用全局函数判断两个立方体是否相等
void isSame(Cube &c1,Cube &c2)
{if(c1.getLong()==c2.getLong() && c1.getWidth()==c2.getWidth() && c1.getHeight()==c2.getHeight()){cout<<"两个立方体相同"<<endl;}else{cout<<"两个立方体不同"<<endl;}
}int main()
{//创建对象Cube c1;c1.setLong(1);c1.setWidth(2);c1.setHeight(3);cout<<"c1的面积为:"<<c1.getSquare()<<endl;cout<<"c1的体积为:"<<c1.getVolume()<<endl;Cube c2;c2.setLong(1);c2.setWidth(2);c2.setHeight(3);//判断两个立方体是否相等isSame(c1,c2);c1.isEqual(c2);c2.setLong(2);isSame(c1,c2);c1.isEqual(c2);return 0;
}

输出如下:

4.1.5 案例2:点和圆(分文件)

题目:设计一个圆形类和一个点类,计算点和圆的关系。

代码如下:

#include <iostream>
using namespace std;//点类
class Point
{
private:int p_x;int p_y;public://设置/获取X,Yvoid setX(int x){p_x=x;}int getX(){return p_x;}void setY(int y){p_y=y;}int getY(){return p_y;}
};//圆类
class Circle
{
private:    int c_r;//半径Point center;//圆心public://设置/获取半径圆心void setR(int r){c_r=r;}int getR(){return c_r;}void setCer(Point cer){center=cer;}Point getCer(){return center;}
};//判断点和圆的关系
void isInCircle(Circle &c,Point &p)
{int dist=(c.getCer().getX()-p.getX()) * (c.getCer().getX()-p.getX())+(c.getCer().getY()-p.getY()) * (c.getCer().getY()-p.getY());int rdist=c.getR() * c.getR();if(dist==rdist){cout<<"点在圆上"<<endl;}else if(dist>rdist){cout<<"点在圆外"<<endl;}else{cout<<"点在圆内"<<endl;}
}int main()
{//创建点对象和圆对象Point p;Circle c;Point center;//设置点的坐标p.setX(0);p.setY(0);//设置园的半径及圆心的坐标c.setR(10);center.setX(10);center.setY(0);c.setCer(center);//判断点与圆的关系isInCircle(c,p);return 0;
}

输出如下:

分文件编写:

point.h

#pragma once//防止头文件重复包含
#include <iostream>
using namespace std;//点类
class Point
{
private:int p_x;int p_y;public://设置/获取X,Yvoid setX(int x);int getX();void setY(int y);int getY();};

point.cpp

#include "point.h"//点类//设置/获取X,Y
void Point::setX(int x)//Point::的作用是声明该函数是Point作用域下的成员函数
{p_x=x;
}
int Point::getX()
{return p_x;
}void Point::setY(int y)
{p_y=y;
}
int Point::getY()
{return p_y;
}

circle.h

#pragma once
#include <iostream>
using namespace std;
#include "point.h"//圆类
class Circle
{
private:    int c_r;//半径Point center;//圆心public://设置/获取半径圆心void setR(int r);int getR();void setCer(Point cer);Point getCer();};

circle.cpp

#include "circle.h"//圆类//设置/获取半径圆心
void Circle::setR(int r)
{c_r=r;
}
int Circle::getR()
{return c_r;
}void Circle::setCer(Point cer)
{center=cer;
}Point Circle::getCer()
{return center;
}

main.cpp

#include <iostream>
using namespace std;
#include "point.h"
#include "circle.h"//判断点和圆的关系
void isInCircle(Circle &c,Point &p)
{int dist=(c.getCer().getX()-p.getX()) * (c.getCer().getX()-p.getX())+(c.getCer().getY()-p.getY()) * (c.getCer().getY()-p.getY());int rdist=c.getR() * c.getR();if(dist==rdist){cout<<"点在圆上"<<endl;}else if(dist>rdist){cout<<"点在圆外"<<endl;}else{cout<<"点在圆内"<<endl;}
}int main()
{//创建点对象和圆对象Point p;Circle c;Point center;//设置点的坐标p.setX(0);p.setY(0);//设置园的半径及圆心的坐标c.setR(10);center.setX(10);center.setY(0);c.setCer(center);//判断点与圆的关系isInCircle(c,p);return 0;
}

http://www.dtcms.com/a/597176.html

相关文章:

  • portfolio做网站台州做网站需要多少钱
  • 网站名称 规则装修设计培训机构
  • Dify工作流如何用“拖拉拽”重构我们的自动化测试体系?
  • 【Docker】基础
  • AI应用开发的架构哲学:框架、平台与定制的协同(ComfyUI+cnb+云存储)
  • MySQL快速入门——索引
  • 舆情处置的技术实现:Infoseek 如何用 AI 重构 “识别 - 研判 - 处置” 全链路
  • gRPC vs RPC 高频面试题
  • 淘宝联盟推广网站怎么做什么是搜索引擎
  • 扬州住房城乡建设局网站设计画册
  • 在线视频网站a做免费下载中山精品网站建设价位
  • LangFlow 节点(Node)
  • Linux设置系统同步时间
  • 花垣网站建设一台主机做两个网站
  • 生成模型技术宇宙:从VAE到世界模型,揭示AIGC核心引擎
  • 网站建设中魔板免费扑克网站代码
  • 股指期货的收益和风险大吗?
  • 第12章 测试编写
  • 性能测试之使用 adb 查看设备CPU占用与数据分析
  • 【AUTOSAR SOMEIP】SD状态机
  • 海尔网站建设情况wordpress 没有保存
  • CSS 对齐
  • 从流批一体到湖仓一体架构演进的思考
  • 如何查看网站是否降权九江市住房和城乡建设厅网站
  • 从基本用法到迭代器实现—list重难点突破
  • 智能建站软件宁波房产网二手房出售
  • 如何从iPhone向Android 发送视频?8 种方法
  • LLM 相关内容
  • 研发管理知识库(4)华为研发管理流程简介
  • 【国内电子数据取证厂商龙信科技】手机取证之文件碎片