C++类与对象二

目录

一、类的嵌套 

二、对象引用私有数据成员

通过公有函数为私有成员赋值

利用指针访问私有数据成员

利用函数访问私有数据成员

利用引用访问私有数据成员 

三、成员函数重载

 四、this指针


一、类的嵌套 

#include <iostream>
using namespace std;class CC1
{
public:int x;void Func();class CC2 {public:int x;void Func();}obc;
};void CC1::Func()
{x = 3000;cout << "x=" << x << endl;
}void CC1 :: CC2::Func()
{x = 4000;cout << "x=" << x << endl;
}int main()
{ CC1 obj;obj.Func();obj.obc.Func();cout << endl;cout << "2:x=" << obj.x << endl;cout << "2:x=" << obj.obc.x << endl;return 0;
}

 

二、对象引用私有数据成员

通过公有函数为私有成员赋值

#include <iostream>
using namespace std;//通过仅有函数为私有数据成员赋值
class CTest {int x, y;
public:void setxy(int a, int b){x = a;y = b;}void dispxy(){cout << "x=" << x << ",y=" << y << endl;}
};int main()
{CTest obj1;obj1.setxy(1, 2);obj1.dispxy();
}

利用指针访问私有数据成员

#include <iostream>
using namespace std;//利用指针访问私有数据成员
class CTest {int x, y;
public:void setxy(int a, int b){x = a;y = b;}void printxy() {cout << "x=" << x << ",y=" << y << endl;}void getxy(int* px, int* py) {   //提取x y的值*px = x;*py = y;}};int main()
{CTest obj;obj.setxy(100, 200);obj.printxy();int m, n;obj.getxy(&m, &n);cout << "m=" << m << ",n=" << n << endl;
}

利用函数访问私有数据成员

#include <iostream>
using namespace std;//利用函数访问私有数据成员
class CTest {int x, y;
public:void setxy(int a, int b){x = a;y = b;}void printxy() {cout << "x=" << x << ",y=" << y << endl;}int getx() { return x; }int gety() { return y; }};int main()
{CTest obj;obj.setxy(100, 200);obj.printxy();cout << "x=" << obj.getx() << endl;cout << "y=" << obj.gety() << endl;}

利用引用访问私有数据成员 

#include <iostream>
using namespace std;//利用引用访问私有数据成员
class CTest {int x, y;
public:void setxy(int a, int b){x = a;y = b;}void printxy() {cout << "x=" << x << ",y=" << y << endl;}void getxy(int& px, int& py) {px = x;py = y;}};int main()
{CTest obj;obj.setxy(100, 200);obj.printxy();int m, n;obj.getxy(m, n);cout << "m=" << m << endl;cout << "n=" << n << endl;
}

三、成员函数重载

#include <iostream>
using namespace std;class CTest
{int x, y;int m, n;
public:void setxy(int a, int b) {x = a;y = b;}void setxy(int a, int b, int c, int d) {x = a;y = b;m = c;n = d;}void dispxy(int x) {cout << x << "," << y << endl;}void dispxymn() {cout << x << "," << y << "," << m << "," << n << endl;}};
int main()
{CTest obj1, obj2;obj1.setxy(10, 20);obj2.setxy(10, 20, 30, 40);obj1.dispxy(666);obj2.dispxymn();return 0;
}

#include <iostream>
using namespace std;class CTest
{int x, y;public:void setxy(int a, int b) {x = a;y = b;}void dispxy(){cout << "x=" << x << "y=" <<y<< endl;}int sum(){return x + y;}};
int main()
{CTest obj1, obj2;//定义对象CTest* pobj;     //对象类的指针(对象指针)pobj = &obj1;pobj->setxy(3, 4);pobj->dispxy();cout << "x+y=" << pobj->sum() << endl;return 0;
}

 四、this指针

#include <iostream>
using namespace std;class CTest
{
private:int x;
public:int getx() const {return x;}void setx(int x) {this->x=x;cout << "this指针存储的内存地址为:" << this << endl;}
};
int main()
{CTest obj;obj.setx(888);cout << "对象obj在内存的地址为:" << &obj << endl;cout << "对象obj所保存的值为:" << obj.getx() << endl;return 0;
}

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

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

相关文章

瑞_JVM虚拟机_类的生命周期_初始化阶段 <clinit>

文章目录 1 JVM虚拟机概述2 类的生命周期2.1 加载阶段2.2 连接阶段2.3 初始化阶段\<client> ★★★★★2.3.1 案例一解析字节码指令 2.3.2 案例二 2.3.3 小结2.3.4 代码中触发类的初始化的方式2.3.4.0 设置打印出加载并初始化的类2.3.4.1 方式一2.3.4.2 方式二2.3.4.3 方…

Kotlin:runBlocking导致App应用出现ANR问题实例

runBlocking简介 runBlocking 是常规函数&#xff1b; runBlocking 方法会阻塞当前线程来等待&#xff1b; runBlocking 的主线程会一直 阻塞 直到 runBlocking 内部的协程执行完毕。 runBlocking导致App应用出现ANR问题实例的效果 点击页面上的 刷新按钮 调用 refreshByrunBlo…

kubernetes-服务-ipvs-调度算法

kubernetes-服务-ipvs-调度算法 kubernetes-61、kubernetes中的网络通信插件1.1、calico1.2、flannel 2、service服务2.1、服务暴露/发现2.2、体验操作2.3、这个体验的流程图和解释 3、ipvs3.1、理解3.2、负载均衡的软件&#xff1a;LVS3.2.1、LVS的nat模式3.2.2、DR模式3.2.3、…

19113133262(微信同号)【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024)

【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024) 大会主题: (主题包括但不限于, 更多主题请咨询会务组苏老师) 区块链&#xff1a; 区块链技术和系统 分布式一致性算法和协议 块链性能 信息储存系统 区块链可扩展性 区块…

一场“猜成绩”大赛:ArrayList vs. LinkedList

今天我们将带来一场精彩绝伦的较量——ArrayList对阵LinkedList。 ArrayList它就像是一张大桌子&#xff0c;可以容纳各种各样的物品。 ArrayList是一个动态数组&#xff0c;具有随机访问的能力&#xff0c;这意味着我们可以在O(1)的时间复杂度内访问任意位置的元素。 它还具…

学点Java打小工_Day4_Homework

1 统计数字 1 int[] scores{0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9}; 求出上面数组中0-9分别出现的次数 &#xff08;双重for循环&#xff09; Testpublic void solveProblem1() {int[] scores {0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,…

JMeter 并发测试和持续性压测详解

并发测试和持续性压测都是评估系统性能的常用方法&#xff0c;它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。 概念 并发测试&#xff1a; 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中&#xff0c;系统会暴露于一定数量的用户负载下&…

MYSQL 索引 结构 以及常见优化

Mysql索引 索引概述 索引是帮助Mysql高效获取数据的排好序的数据结构 比如我们做查询的时候需要查询col289的数据 首先我们的数据在磁盘上的表不一定是挨着的&#xff0c;第一条数据插入后&#xff0c;可能其它程序在磁盘上写入了数据&#xff0c;然后再插入第二条&#xf…

【保姆级】GPT的Oops问题快速解决方案

GPT的"Oops"问题通常指的是GPT在处理请求时突然遇到错误或无法提供预期输出的情况。要快速解决这个问题&#xff0c;可以尝试以下分步策略&#xff1a; 确认问题范围&#xff1a; 首先&#xff0c;确认问题是偶发的还是持续存在的。如果是偶发的&#xff0c;可能是临…

Html提高——HTML5 新增的语义化标签

引入&#xff1a; 以前布局&#xff0c;我们基本用 div 来做。div 对于搜索引擎来说&#xff0c;是没有语义的。 但是在html5里增加了语义化标签&#xff0c;如 <header>&#xff1a;头部标签 <nav>&#xff1a;导航标签 <article>&#xff1a;内容标签 &…

phpcms头像上传漏洞引发的故事

目录 关键代码 第一次防御 第一次绕过 第二次防御 第二次绕过 第三次防御 第三次绕过 如何构造一个出错的压缩包 第四次防御 第四次绕过 本篇文章是参考某位大佬与开发人员对于文件包含漏洞的较量记录下的故事&#xff0c;因为要学习文件包含漏洞&#xff0c;就将大佬…

Dense Distinct Query for End-to-End Object Detection

摘要 对象检测中的一对一标签分配成功地消除了作为后处理的非极大值抑制&#xff08; NMS &#xff09;的需要&#xff0c;并使流水线端到端。然而&#xff0c;这引发了一个新的困境&#xff0c;因为广泛使用的稀疏查询无法保证高召回率&#xff0c;而密集查询不可避免地带来更…