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

【自用21.】C++-this指针

Human::Human(int age, int salary) {
	cout << "调用自定义的构造函数" << endl;
	this->age = age;      //this是一个特殊的指针,指向这个对象本身
	this->salary = salary;
	name = "无名";

	addr = new char[64];
	strcpy_s(addr, 64, "China");
}

说明:在类的静态成员函数【后续学习】中,不能使用this指针!

#include <iostream>
#include <Windows.h>
#include <string>
#include <string.h>

using namespace std;

// 定义一个“人类”
class Human {
public:
	Human();
	Human(int age, int salary);

	int getAge();
	Human& compare1(Human& other);

private:
	string name = "Unknown";
	int age = 28;
	int salary;
	char* addr;
};

Human::Human() {
	name = "无名氏";
	age = 18;
	salary = 30000;
}

Human::Human(int age, int salary) {
	cout << "调用自定义的构造函数" << endl;
	this->age = age;      //this是一个特殊的指针,指向这个对象本身
	this->salary = salary;
	name = "无名";

	addr = new char[64];
	strcpy_s(addr, 64, "China");
}

int Human::getAge() {
	return age;
}

Human& Human::compare1(Human& other) {
	if (age > other.age) {
		return  *this; //没有创建新的对象
	}
	else {
		return other;
	}
}

int main(void) {
	Human h1(25, 30000);
	Human h2(18, 8000);
	cout << h1.compare1(h2).getAge() << endl;

	system("pause");
	return 0;
}
#include <iostream>
#include <Windows.h>
#include <string>
#include <string.h>

using namespace std;

// 定义一个“人类”
class Human {
public:
	Human();
	Human(int age, int salary);

	int getAge();
	Human* compare1(Human* other);

private:
	string name = "Unknown";
	int age = 28;
	int salary;
	char* addr;
};

Human::Human() {
	name = "无名氏";
	age = 18;
	salary = 30000;
}

Human::Human(int age, int salary) {
	cout << "调用自定义的构造函数" << endl;
	this->age = age;      //this是一个特殊的指针,指向这个对象本身
	this->salary = salary;
	name = "无名";

	addr = new char[64];
	strcpy_s(addr, 64, "China");
}

int Human::getAge() {
	return age;
}

Human* Human::compare1(Human* other) {
	if (age > other->age) {
		return  this; //没有创建新的对象
	}
	else {
		return other;
	}
}

int main(void) {
	Human h1(25, 30000);
	Human h2(18, 8000);

	Human* p;
	p = &h1;

	cout << p->compare1(&h2)->getAge() << endl;

	system("pause");
	return 0;
}

上面两种代码,一种是用指针的,一种是用引用的,它们使用的符号稍微有一点不一样,大家要注意!!也要注意函数中传入参数的种类!


http://www.kler.cn/a/298815.html

相关文章:

  • 使用 Python 创建多栏 Word 文档 – 详解
  • EMS(energy managment system)从0到1
  • 分别查询 user 表中 avatar 和 nickname 列为空的用户数量
  • 【Linux】ChatGLM-4-9B模型之All Tools
  • GamePlay UE网络同步
  • 重生之我在异世界学编程之C语言:深入预处理篇(上)
  • pyflink的窗口
  • 5G网络建设
  • 【Kubernetes】常见面试题汇总(五)
  • Linux之ansible的playbook剧本(yaml文件)
  • 力扣题解2552
  • 开源的 Kafka 管理平台
  • C程序设计——再说说函数参数的值传递
  • 支持iPhone 16新品预售,饿了么同步上线专人配送等特色服务
  • 李诞-2021.8脱口秀工作手册-11-pitch your idea把一个想法扎进别人脑子里;专业,做足准备,给选择option!
  • 5.2 排列与代数余子式
  • 大模型实战一、Ollama+RagFlow 部署本地知识库
  • 三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris
  • 数学建模笔记——熵权法(客观赋权法)
  • 【开源免费】基于SpringBoot+Vue.JS图书个性化推荐系统(JAVA毕业设计)
  • STM32的CRC校验(基于HAL库)
  • k8s 存储(PV、PVC、SC、本地存储、NFS)
  • 观趋势 谋发展 2024 SSHT上海智能家居展有哪些创新呈现?
  • 元学习之模型诊断元学习(model-agnosticmeta-learning,MAML)
  • SLT—List详解
  • 【iOS】暑期学习总结