【C++】类和对象-封装

这篇具有很好参考价值的文章主要介绍了【C++】类和对象-封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.属性和行为作为整体

【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

2.示例2-设计学生类

【C++】类和对象-封装,C++,c++

3.访问权限

【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

4.class和struct的区别

【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

5.成员属性设置为私有

【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

6.设计案例1-立方体类

【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

在main函数前重新补上isSame函数
【C++】类和对象-封装,C++,c++

在Cube类里面添加issamebyclass,利用成员函数判断两个立方体是否相等
【C++】类和对象-封装,C++,c++
【C++】类和对象-封装,C++,c++

自己写的代码:

#include <iostream>
using namespace std;

class Cube {
public:	//行为
	void setL(int l) {
		m_L = l;
	}
	int getL() {
		return m_L;
	}

	void setW(int w) {
		m_W= w;
	}
	int getW() {
		return m_W;
	}

	void setH(int h) {
		m_H = h;
	}
	int getH() {
		return m_H;
	}

	int calculateS() {
		return 2 * (m_L * m_W + m_L * m_H + m_H * m_W);
	}

	int calculateV() {
		return m_L * m_W * m_H;
	}

	bool IsSameByClass(Cube& c) {
		if (getL() == c.getL() && getW() == c.getW() && getH() == c.getH()) {
			return true;
		}
		return false;
	}

private://属性
	int m_L, m_W, m_H;
};

bool IsSame(Cube& c1, Cube& c2){
	if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH()) {
		return true;
	}
	return false;
}

int main()
{
	Cube c1;
	c1.setL(10), c1.setW(10), c1.setH(10);
	cout << "c1_L=" << c1.getL() << "\tc1_W=" << c1.getW() << "\tc1_H=" << c1.getH()<<endl;
	cout << "c1_S=" << c1.calculateS() << "\tc1_V=" << c1.calculateV() << endl<<endl;

	Cube c2;
	c2.setL(10), c2.setW(10), c2.setH(10);
	cout << "c2_L=" << c2.getL() << "\tc2_W=" << c2.getW() << "\tc2_H=" << c2.getH() << endl;
	cout << "c2_S=" << c2.calculateS() << "\tc2_V=" << c2.calculateV() << endl << endl;

	bool flag = IsSame(c1,c2);
	if (flag) {
		cout << "两个立方体相等。" << endl << endl;
	}
	else {
		cout << "两个立方体不相等。" << endl<<endl;
	}

	bool flag_2 = c1.IsSameByClass(c2);
	if (flag_2) {
		cout << "BYclass两个立方体相等。" << endl << endl;
	}
	else {
		cout << "BYclass两个立方体不相等。" << endl << endl;
	}


	system("pause");

	return 0;
}

【C++】类和对象-封装,C++,c++

7.设计案例2-点和圆的关系

B站视频链接:
https://www.bilibili.com/video/BV1et411b73Z/?p=105&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=fb8dcae0aee3f1aab700c21099045395
【C++】类和对象-封装,C++,c++文章来源地址https://www.toymoban.com/news/detail-608370.html

main.cpp

#include <iostream>
using namespace std;

#include "circle.h"
#include "point.h"
//class Point {
//public:
//	void setX(float x) {
//		m_X = x;
//	}
//	float getX() {
//		return m_X;
//	}
//
//	void setY(float y) {
//		m_Y = y;
//	}
//	float getY() {
//		return m_Y;
//	}
//	
//private:
//	float m_X, m_Y;
//};

//class Circle {
//public:	//行为
//	void setR(float r) {
//		m_R = r;
//	}
//	float getR() {
//		return m_R;
//	}
//
//	void setCenter(Point center) {
//		m_Center = center;
//	}
//	Point getCenter() {
//		return m_Center;
//	}
//
//private://属性
//	Point m_Center;
//	float m_R;
//};

void isInCircle(Circle& c, Point& p) 
	{
	float r = sqrt(pow(c.getCenter().getX() - p.getX(), 2) +
		pow(c.getCenter().getY() - p.getY(), 2));
		if (pow(c.getR(), 2) < pow(r, 2)) 
		{
			cout << "点在圆外" << endl;
		}
	    else if (pow(c.getR(), 2) == pow(r, 2)) 
		{
			cout << "点在圆上" << endl;
		}
		else if (pow(r, 2) == 0)
		{
			cout << "点是圆心" << endl;
		}
		else
		{
			cout << "点在圆内" << endl;
		}
}

int main()
{
	Point p;
	p.setX(0);
	p.setY(9);
	Point center;
	center.setX(0);
	center.setY(0);
	
	Circle c;
	c.setCenter(center);
	c.setR(2);

	isInCircle(c, p);

	system("pause");

	return 0;
}

point.h

#pragma once
#include <iostream>
using namespace std;

class Point {
public:
	void setX(float x);
	float getX();

	void setY(float y);
	float getY();

private:
	float m_X, m_Y;
};

point.cpp

#include "point.h"


	void Point::setX(float x) {
		m_X = x;
	}
	float Point::getX() {
		return m_X;
	}

	void Point::setY(float y) {
		m_Y = y;
	}
	float Point::getY() {
		return m_Y;
	}

circle.h

#pragma once
#include <iostream>
using namespace std;
#include "point.h"

class Circle {
public:	//行为
	void setR(float r);
	float getR();

	void setCenter(Point center);
	Point getCenter();

private://属性
	Point m_Center;
	float m_R;
};

circle.cpp

#include "circle.h"



	void Circle::setR(float r) {
		m_R = r;
	}
	float Circle::getR() {
		return m_R;
	}

	void Circle::setCenter(Point center) {
		m_Center = center;
	}
	Point Circle::getCenter() {
		return m_Center;
	}

到了这里,关于【C++】类和对象-封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++核心编程—类和对象,类的三大特性——封装、继承、多态

    纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。 ①什么是对象? 生活中有各种各样的 事物 ,如人、动物、植物等在C++中将这些称为对象。 对象多种多样, 各种对象的属性也不相同 。 例如狗的品种,毛色,年龄等 各个对象都有自己的行为 ,例

    2024年02月07日
    浏览(64)
  • 【C++】类和对象 - 封装 - 属性和行为,访问权限,class 和 struct区别,成员属性私有化

    No. Contents 1 【C++】基础知识 - HelloWorld,注释,变量,常量,,标识符 2 【C++】数据类型 - 整型,sizeof,实型,字符型,转义字符,字符串类型,布尔类型,数据的输入 3 【C++】运算符 - 算术运算符,赋值运算符,比较运算符,逻辑运算符 4 【C++】程序流程结构 - 循序结

    2024年02月07日
    浏览(50)
  • 【C++初阶】三、类和对象(面向过程、class类、类的访问限定符和封装、类的实例化、类对象模型、this指针)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【C++初阶】二、入门知识讲解 (引用、内联函数、auto、基于范围的for循环、指针空值

    2024年02月04日
    浏览(40)
  • 【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)

    🔥 个人主页 : Forcible Bug Maker 🔥 专栏 : C++ 目录 前言 什么是面向对象? 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象的存储方式 this指针 结语 最早的C++版本(C with classes)中,最先加上的就是类的机制,它构成了面向对象编程(OOP)的

    2024年04月14日
    浏览(55)
  • 【Java】类和对象,封装

    目录 1.类和对象的定义  2.new 3.this引用 4.对象的构造及初始化 5.封装 //包的概念 //如何访问 6.static成员 7.代码块 8.对象的打印 对象:Java中一切皆对象。 类:一般情况下一个Java文件一个类,每一个类对应一个字节码文件(*.class)        1)字段 / 属性 / 成员变量:定

    2024年02月02日
    浏览(43)
  • Python-面向对象:面向对象、成员方法 、类和对象、构造方法、魔术方法、封装、继承、类型注解、多态(抽象类(接口))

    当前版本号[20230806]。 版本 修改说明 20230806 初版 生活中数据的组织 学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填, 易出现内容混乱 但当改为登记表,打印出来让学生自行填写, 就会整洁明了 程序中数据的组织 在程序中简单使用变量来记录学

    2024年02月14日
    浏览(52)
  • <C++> 类和对象-面向对象

    C语言是 面向过程 的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C++是基于 面向对象 的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函

    2024年02月14日
    浏览(46)
  • <C++> 类和对象(上)-面向对象

    C语言是 面向过程 的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C++是基于 面向对象 的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函

    2024年02月11日
    浏览(53)
  • 【C++】类和对象(上篇)

    目录 一、类的引入 二、类的定义 三、类的访问限定符及封装   1、访问限定符   2、封装 四、类的作用域 五、类的实例化 六、类对象模型   1、计算类对象的大小   2、类对象的存储方式   3、结构体/类内对齐规则 七、this 指针   1、this 指针的引出   2、this 指针的特性 首

    2024年02月09日
    浏览(72)
  • 【C++】类和对象-友元

    不在类外定义成员函数:

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包