IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 定义抽象数据类型(类)structcalss以及this指针介绍(2) -> 正文阅读

[C++知识库]定义抽象数据类型(类)structcalss以及this指针介绍(2)

继定义抽象数据类型(1)?接着对类的内容进行介绍;

1、this指针????????

this指针在类中具有很广泛的用处,当定义一个类后并调用该类非静态成员时就会用到this指针,下面用形象一点的解释来说明this的应用;

????????将类比作一个房子,××房子就是在房子这个类下的定义,里用很多物品,你想说这个房子里的电视机,××房子的电视机,在c++中就是访问了这个类下的成员,××房子->电视机,而编译器中会有一个指向自己的指针,你已经进到了这个房子,你就不用再说这是××房子的电视机,而可以直接就介绍这个电视机,this->电视机就意味着这个房子里的电视机。

?this指针使用:

????????1)this 指针指向被调用的成员函数所属的对象;
????????2)this 指针隐含每一个非静态成员函数内的一种指针;
? ? ? ? 3)this 指针不需要定义,直接使用即可;

this 指针的用途
? ? ? ? 1)当形参和成员变量同名时,可用this指针来区分;
? ? ? ? 2)在类的非静态成员函数中返回对象本身,可使用return * this;
? ? ? ? 3)返回的是指针的时候 ,函数返回的是引用时返回的是左值;
? ? ? ? 4)若返回的是值会在拷贝函数中创造新的对象;

#include<iostream>
#include<string>
using namespace std;
class house
{
public:
	house(string TV,int age)
	{
		this->TV = TV;    
		this->age = age;						//解决名称冲突,不用定义直接使用;
	}
	house& AgeAdd(house& h)
	{
		this->age += h.age;
		return *this;
	}
	string TV;
	int age;
};
int main()
{
	house h("Sony", 20);
	//打印
	cout << "电视型号 : " << h.TV << ",使用时长 : " << h.age << endl;
	h.AgeAdd(h).AgeAdd(h);					//返回的是this的指针,
               //  说的是返回值是this所指的类,还可以继续访问,链式访问
	cout << "使用时长 : " << h.age << endl;
	system("pause");
	return 0;
}

?

?下面用类简单设计一个程序

? ? ? ? 程序的目的是用类来设计一个长方体,平且给出两个长方体判断是否相等。

#include<iostream>
#include<string>
using namespace std;
class Cube
{
public:
	//设置长宽高
	void set(int l, int w, int h)
	{
		this->m_L = l;
		this->m_W = 2;
		this->m_H = h;
	}
	//获取长宽高
	int getL()
	{
		return m_L;
	}
	int getW()
	{
		return m_W;
	}
	int getH()
	{
		return m_H;
	}
	//求取长方体的面积
	int CalculateS()
	{
		return 2 * m_L * m_W + 2 * m_L * m_H + 2 * m_W * m_H;
	}
	//求取长方体体积
	int CalculateV()
	{
		return m_L * m_W * m_H;
	}
	//判断两个长方体是否相等
	bool isSame(Cube& c)
	{
		if (m_L == c.getL() && m_H == c.getH()&& m_W == c.getW())
		{
			return true;
		}
		return false;
	}
private:
	int m_L;
	int m_W;
	int m_H;
};
int main()
{
	Cube c1;
	Cube c2;
	c1.set(5, 6, 8);
	c2.set(6, 8, 9);
	cout << "长方体1的体积 : " << c1.CalculateV() << " 长方体1的表面积 : " << c1.CalculateS() << endl;
	cout << "长方体2的体积 : " << c2.CalculateV() << " 长方体2的表面积 : " << c2.CalculateS() << endl;
	if (c2.isSame(c1))//判断是否相等
	{
		cout << "两长方体相等!" << endl;
	}
	else
	{
		cout << "两长方体不想等!" << endl;
	}
	system("pause");
	return 0;
}

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 15:47:14  更:2021-12-18 15:48:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:44:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码