class_10:this关键字

news/2024/11/28 10:48:44/

this关键字是指向调用对象的指针 

#include <iostream>
#include <iostream>
using namespace std;class Car{
public://成员数据string brand; //品牌int    year;  //年限//构造函数名与类名相同Car(string brand,int year){cout<<"构造函数中:"<<endl;cout<<this<<endl;}void realPrintCarInfo(); //声明成员函数
};//"::" 类或者命名空间的解析符
void Car::realPrintCarInfo()  //在类的外部进行成员函数的实现
{string  str = "车的品牌" + brand+ ",上市年限是" + std::to_string(year);cout << str<<endl;
}int main()
{Car BMW3("宝马",2024);cout<<"main函数中:"<<endl;cout << &BMW3<<endl;cout << "======================"<<endl;Car BMW4("宝马",2024);cout<<"main函数中:"<<endl;cout << &BMW4<<endl;return 0;
}

 

#include <iostream>
#include <iostream>
using namespace std;class Car{
public://成员数据string brand; //品牌int    year;  //年限//构造函数名与类名相同Car(string brand,int year){//cout<<"构造函数中:"<<endl;//cout<<this<<endl;this->brand = brand;this->year  = year;}void realPrintCarInfo(); //声明成员函数
};//"::" 类或者命名空间的解析符
void Car::realPrintCarInfo()  //在类的外部进行成员函数的实现
{string  str = "车的品牌" + brand+ ",上市年限是" + std::to_string(year);cout << str<<endl;
}int main()
{Car BMW3("宝马",2025);BMW3.realPrintCarInfo();return 0;
}

链式调用

 

#include <iostream>
#include <iostream>
using namespace std;class Car{
public://成员数据string brand; //品牌int    year;  //年限//构造函数名与类名相同Car(string brand,int year){//cout<<"构造函数中:"<<endl;//cout<<this<<endl;this->brand = brand;this->year  = year;}void realPrintCarInfo(); //声明成员函数Car& setYear(int year){this->year = year;return *this;}
};//"::" 类或者命名空间的解析符
void Car::realPrintCarInfo()  //在类的外部进行成员函数的实现
{string  str = "车的品牌" + brand+ ",上市年限是" + std::to_string(year);cout << str<<endl;
}int main()
{Car BMW3("宝马",2025);//链式调用BMW3.setYear(2024).realPrintCarInfo();return 0;
}

在这个例子中,Car类的构造函数使用this指针来区分成员变量好人构造函数参数。同意,setYear成员函数使用this指针来返回该函数的对象的引用,这允许链式调用,如

 BMW3.setYear(2024).realPrintCarInfo();

http://www.ppmy.cn/news/1324929.html

相关文章

Ubuntu 安装Python3.8

安装Python3.8 一、安装环境 Ubuntu2004Python2.7 目标是将python版本从 2.7 更新到3.8 二、安装步骤 2.1 下载python3.8安装包 wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz2.2 安装 依次执行如下步骤&#xff1a; tar Jxf Python-3.8.0.tar.xz…

opensssl BIO方式https客户端

废话不多说&#xff0c;代码中使用了两种https客户端的实现方式。 #include <windows.h> #include <WinSock.h>#pragma comment(lib,"ws2_32.lib") #include "../include/openssl\ssl.h" #include "../include/openssl\err.h"#pragm…

DNS - 全家桶(114 DNS、阿里DNS、百度DNS 、360 DNS、Google DNS)

DNS是什么&#xff1f; DNS是域名系统,Domain Name System的缩写,是一个服务。 DNS就是把域名解析为IP地址&#xff0c;提供我们上网&#xff0c;我们能够上网最终是找到IP地址。 比如&#xff0c;http://xxxx.com是域名&#xff0c;那么他的IP地址假设是144.144.144.144&am…

C#设计模式教程(1):简单工厂模式

在C#中,工厂模式可以分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式(Simple Factory Pattern): 简单工厂模式并不属于23种经典设计模式之一,但它是工厂模式的一种简单形式。在简单工厂模式中,有一个工厂类负责根据传入的参数决定创建哪种产…

UML-实现图(组件图和部署图)

实现图是从系统的层次来描述的&#xff0c;描述硬件的组成和布局&#xff0c;描述软件系统划分和功能实现。 UML-实现图&#xff08;组件图和部署图&#xff09; 一、组件图1.组件图的元素&#xff08;1&#xff09;组件&#xff08;2&#xff09;接口&#xff08;3&#xff09…

三坐标平台对环境的温度有要求吗——河北北重

三坐标铸铁平台对环境的温度有一定的要求。通常情况下&#xff0c;三坐标平台在使用过程中要求环境的温度保持在一定范围内&#xff0c;以确保测量数据的准确性和稳定性。 具体的温度要求可能会因不同的三坐标铸铁平台型号和制造商而有所不同&#xff0c;一般来说&#xff0c;常…

MAC磁盘空间不足怎么清理?MAC清理磁盘空间的五种方法

MAC磁盘空间不足怎么清理&#xff1f;当我们使用苹果MAC一段时间后&#xff0c;就会有大量的垃圾文件占用磁盘空间&#xff0c;例如系统缓存文件、应用程序缓存文件、备份和重复文件、旧版的应用程序及其部件等&#xff0c;为了不影响电脑的后续使用&#xff0c;我们需要经常清…

奇安信天擎 rptsvr 任意文件上传漏洞复现

0x01 产品简介 奇安信天擎是奇安信集团旗下一款致力于一体化终端安全解决方案的终端安全管理系统(简称“天擎”)产品。通过“体系化防御、数字化运营”方法,帮助政企客户准确识别、保护和监管终端,并确保这些终端在任何时候都能可信、安全、合规地访问数据和业务。天擎基于…