C++:07---this指针

一、this指针介绍

  • 概念:this指针是成员函数的一个隐式参数,在类中本质上就是对象的指针(常量指针)

  • 特点:

    • 在成员函数中可通过this指针区别成员变量与形参变量

    • this可以显式调用

  • 示例代码:

class Cperson
{
private:
int age;
float height;
public:
void InitPerson(int age,float height);
};
void Cperson::InitPerson(int age,float height)
{
this->age=age;
this->height=height;
}

二、返回*this成员函数

  • 概念:返回值是*this,也就是返回调用此成员函数的对象的自身引用,返回值类型为对象引用类型

class Person
{
private:
int age;
public:
Person& setAge(int age);//返回自身引用
};
Person& Person::setAge(int age)
{
this->age=age;
return *this;//返回*this(自身引用)
}
  • 从const成员函数返回*this:如果一个const成员函数返回*this,那么此函数的返回值类型是常量引用:比如上面的代码中的setAge函数变为常量成员函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis :01---Redis简介和安装

一、Redis简介 Redis官网:https://redis.io/ Redis是一种基于键值对(key-value)的NoSQL数据库 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、 list&…

215. 数组中的第K个最大元素 BFPRT最牛解法

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k 4 输出: 4 说明: 你可以假设 k 总是…

C++: 06---构造函数析构函数

拷贝构造函数: 用一个已经存在的对象来生成一个相同类型的新对象。(浅拷贝)默认的拷贝构造函数: 如果自定义了拷贝构造函数,编译器就不在生成默认的拷贝构造函数。 如果没有自定义拷贝构造函数,但在代码中用到了拷贝构造函数,编译器会生成默认…

leetcode371. 两整数之和 不用+号做加法

不使用运算符 和 - ,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 输入: a 1, b 2 输出: 3 示例 2: 输入: a -2, b 3 输出: 1 思路:模拟加法器 二进制不考虑进位:000,010,110,是…

C++:05---class和struct

C++被称为“C with class”,可见在C++中class是多么重要,与class类似的一个结构就是struct了,struct最早是在C语言中出现的,在C++中对struct的功能也进行了扩展。 class : public(公有):在类内外、派生类中都可被访问protected(保护):希望与派生类共享但是不想被公共…

leetcode34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums [5,7,7,8,8,10], target 8 输…

C++:11---友元函数、友元类

一、友元(friend) 概念:通过友元,打破了类的封装性,可以访问类内的所有成员分类:友元函数、友元类二、友元函数 概念:友元函数是一个普通函数,不属于类,但需要在类内表明友元关系 友元函数可访问类内所有成员,但类不可以访问友元函数…

leetcode75. 颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码…

C++:12---运算符重载

一、概念 对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型重载的运算符是具有特殊名字的函数,该函数也有返回值、参数列表、函数体二、运算符重载的3种实现方式 成员函数:私有、公有、保护都可以友元函数:同上全局函数:只能访问公有的三、运算符重载的…

Redis:03---Redis的启动与配置参数大全

一、Redis的可执行文件当我们安装完Redis之后,src和/usr/local/bin目录下提供了下面这些可执行程序,我们称之为Redis Shell:redis-serverRedis服务器redis-cliRedis命令行客户端redis-benchmarkRedis性能测试工具redis-check-aofRedis AOF持久…

leetcode80. 删除排序数组中的重复项 II

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums [1,1,1,2…

Redis:04---键的基本命令(上)

一、KEYS:全量遍历键KEYS pattern功能:用来获取此数据库中所有的键名注意事项:KEYS命令需要遍历Redis中的所有键,当键的数量较多时会影响性能,不建议在生产环境下使用支持glob风格通配符格式,见下表&#x…

leetcode67. 二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a "11", b "1" 输出: "100" 示例 2: 输入: a "1010", b "1011" 输出…

C++:13---继承(单一继承、多重继承、多级继承、菱形继承、虚继承)

一、基类与派生类的概念 基类(父类):在继承关系中处于上层的类派生类(子类):在继承关系中处于下层的类class A;class B;class C:public A //C为A的子类,A为C的父类{};class D:public A,public B //D为A和B的子类,A和B均为D的父类{};二、类派生列表 派生类通过派生类列…

(十三) 深入浅出TCPIP之setsockopt参数详解

在socket编程中我们会经常用到setsockopt这个函数,那么本节我们将对这个函数的参数和使用做说明: 首先看下函数原型: int setsockopt( int socket, int level, int option_name,const void *option_value, size_t ,ption_len); 第…

22种编程语言新年快乐

请允许我用22种编程语言&#xff0c;祝大家新年快乐 C语言&#xff1a;printf(“祝大家新年快乐”); C : cout<<“祝大家新年快乐”; OC: NSLog(“祝大家新年快乐”) QBasic : Print “祝大家新年快乐” Asp : Response.Write “祝大家新年快乐” PHP : echo “祝大家新年…

Redis:05---键的基本命令(下) 生存周期

一、设置键生存/过期时间生存时间&#xff08;Time To Live&#xff0c;TTL&#xff09;&#xff1a;在经过指定的秒数或者毫秒数之后&#xff0c;服务器就会自动删除生存时间为0的键过期时间&#xff08;expire time&#xff09;&#xff1a;是一个UNIX时间戳&#xff0c;当键…

数论基础代码合集

欧几里德 #include<iostream> using namespace std; int hcf(int a,int b) {int r0;while(b!0){ra%b;ab;br;}return(a); } lcd(int u,int v,int h) //ua&#xff0c;vb&#xff0c;h为最小公约数hcf(a,b); {return(u*v/h); } int main() {int a,b,x,y;cin>>…

C++:03---引用类型

一、概念 C++中的一种新的变量类型,作用是为变量取别名二、引用规则 引用被创建时必须被初始化(即必须指向一个对象,因此引用一旦被初始化,就不能再指向其他对象)int a = 10; int &p = a; //正确 int &p2; //错误,引用必须初始化引用的数据类型必须与被引用的…

三个博弈基础

&#xff08;一&#xff09;巴什博奕&#xff08;Bash Game&#xff09;&#xff1a;只有一堆n个物品&#xff0c;两个人轮流从这堆物品中取物&#xff0c;规定每次至少取一个&#xff0c;最多取m个。最后取光者得胜。 显然&#xff0c;如果nm1&#xff0c;那么由于一次最…