(二)C++之类与对象

一.类的申明

class 类名
{ 
private:
私有的数据和成员函数;
public:
公用的数据和成员函数;
protected:
保护的数据和成员函数
};

二.类的成员函数

构造函数(类的初始化,创建类时自动调用;初始化表,this指针)
默认构造函数 A();

#include <stdio.h>class A{
public:A(){printf("A()\n");}A(int data){printf("A(int data)\n");}~A(){printf("A~~~~~~~~~~~~~\n");}
};int main()
{//called when new object is created!A *p = new A(1000);A  x;A  m(100);A  y = 10;A  z = y;
}

拷贝构造函数 A(const A &x);

#include <stdio.h>
#include <string.h>class A{
public:A(){printf("A()\n");p = new char[10];strcpy(p, "hello");printf("p: %s\n", p);printf("p: %s\n", this->p);}A(const A &x){printf("A(const A &x)\n");p = new char[10];strcpy(p, x.p);	}~A(){printf("~A()\n");delete [] p;}private:char *p;
};int main()
{A x;A y = x;//	y = x;
}

赋值构造函数 operator=?;

析构函数(类的解构,销毁类时自动调用)
~A();

普通成员函数

三.常成员、常对象

常数据成员(构造函数初始化表赋值)
class A{
public: A():x(100) { }
const int x;
}
常成员函数
void func() const;
常对象
const A a;

#include <stdio.h>class A{
public:A(int a = 50, int data = 1000):b(data){
//		b = data;this->a = a;printf("AAAAAAAAA\n");}~A(){printf("~~~~~~~~~\n");}void show(void) const{printf("b = %d\n", b);printf("a = %d\n", a);//	a++;//	b++;}
private:int a;const int b;
};int main()
{A x(10);x.show();A y(100);y.show();A z;z.show();
}

四.静态成员

静态成员的申明
static int x;
static const int x = 10;

静态数据成员初始化
类外: static int A::x = 10;

静态成员函数
static void func(); //能访问静态成员
调用方法 A::func();

#include <stdio.h>class A{
public:static void func(void){printf("xxxxxxxxx\n");}static int data;
};int A::data = 10;int main()
{A a;a.func();A::func();A x;x.data = 100;printf("x.data = %d\n", x.data);A::data = 1000;printf("x.data = %d\n", x.data);
}

五.友元

友元类
friend class B;

友元函数
friend void func();

友元成员函数
friend void B::func();

#include <stdio.h>class A;class B{
public:void printfA(A &x);	
};class A{
public:A(){x = 100;}//	friend class B;friend void B::printfA(A &x);
private:int x;
};void B::printfA(A &x)
{printf("%d\n", x.x);
}int main()
{A a;
//	printf("%d\n", a.x);B b;b.printfA(a);
}

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

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

相关文章

站在资本投资领域如何看待分布式光纤传感行业?

近年来&#xff0c;资本投资领域对于分布式光纤传感行业并不十分敏感。这主要是由于分布式光纤传感技术是一个专业且小众的领域&#xff0c;其生命周期相对较长&#xff0c;缺乏爆发性&#xff0c;与消费品或商业模式创新产业有所不同。此外&#xff0c;国内的投资环境也是影响…

开源AI智能名片S2B2C商城小程序在社群团购模式中的应用与探索

摘要 本文深入探讨了开源AI智能名片S2B2C商城小程序在社群团购模式中的创新应用与未来发展。通过详细分析社群团购模式的特征、发展趋势及其面临的挑战&#xff0c;结合开源AI智能名片S2B2C商城小程序的技术优势与实际应用案例&#xff0c;本文提出了一系列旨在提升社群团购效…

文档解析效果全维度测评标准

TextIn文档解析测评工具&#xff0c;全面评测文档解析产品能力 关注TechLead&#xff0c;复旦AI博士&#xff0c;分享AI领域全维度知识与研究。拥有10年AI领域研究经验、复旦机器人智能实验室成员&#xff0c;国家级大学生赛事评审专家&#xff0c;发表多篇SCI核心期刊学术论文…

品牌设计宝典:打造独特视觉形象

今天&#xff0c;我们来谈谈品牌设计。品牌设计是视觉设计师非常重要的内容。如果你了解品牌设计的相关知识&#xff0c;你会更好地了解“包装”自己、运营自己或建立个人品牌内容。 理论上&#xff0c;品牌是一个广义的概念。比如公司从外到内建立的一些内容属于品牌概念下的…

Unity DOTS中的world

Unity DOTS中的world 注册销毁逻辑自定义创建逻辑创建world创建system group插入player loopReference DOTS中&#xff0c;world是一组entity的集合。entity的ID在其自身的世界中是唯一的。每个world都拥有一个EntityManager&#xff0c;可以用它来创建、销毁和修改world中的en…

Python机器学习入门:从理论到实践

文章目录 前言一、机器学习是什么&#xff1f;二、机器学习基本流程三、使用Python进行机器学习1.数据读取2.数据规范化3. 数据降维&#xff08;主成分分析&#xff09;4. 机器学习模型的选择5. 线性回归模型的实现6. 可视化结果 总结 前言 机器学习是人工智能的一个重要分支&…

安装好anaconda,打开jupyter notebook,新建 报500错

解决办法&#xff1a; 打开anaconda prompt 输入 jupyter --version 重新进入jupyter notebook&#xff1a; 可以成功进入进行代码编辑

功能测试与APPSCAN自动化测试结合的提高效率测试策略

背景 手工探索性测试&#xff08;Manual Exploratory Testing&#xff0c;简称MET&#xff09;是一种软件测试方法&#xff0c;它依赖于测试人员的直觉、经验和即兴发挥来探索应用程序或系统。与传统的脚本化测试相比&#xff0c;手工探索性测试不遵循固定的测试脚本&#xff0…

基于 PyTorch 的模型瘦身三部曲:量化、剪枝和蒸馏,让模型更短小精悍!

基于 PyTorch 的模型量化、剪枝和蒸馏 1. 模型量化1.1 原理介绍1.2 PyTorch 实现 2. 模型剪枝2.1 原理介绍2.2 PyTorch 实现 3. 模型蒸馏3.1 原理介绍3.2 PyTorch 实现 参考文献 1. 模型量化 1.1 原理介绍 模型量化是将模型参数从高精度&#xff08;通常是 float32&#xff0…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十四章 注册字符设备号

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

【Linux】汇总TCP网络连接状态命令

输入命令&#xff1a; netstat -na | awk /^tcp/ {S[$NF]} END {for(a in S) print a, S[a]} 显示&#xff1a; 让我们逐步解析这个命令&#xff1a; netstat -na: netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令。 -n 选项表示输出地址和端口以数字格式显示…

Armv8/Armv9架构的学习大纲-学习方法-自学路线-付费学习路线

本文给大家列出了Arm架构的学习大纲、学习方法、自学路线、付费学习路线。有兴趣的可以关注&#xff0c;希望对您有帮助。 如果大家有需要的&#xff0c;欢迎关注我的CSDN课程&#xff1a;https://edu.csdn.net/lecturer/6964 ARM 64位架构介绍 ARM 64位架构介绍 ARM架构概况…

Wi-SUN无线通信技术 — 大规模分散式物联网应用首选

引言 在数字化浪潮的推动下&#xff0c;物联网&#xff08;IoT&#xff09;正逐渐渗透到我们生活的方方面面。Wi-SUN技术以其卓越的性能和广泛的应用前景&#xff0c;成为了大规模分散式物联网应用的首选。本文将深入探讨Wi-SUN技术的市场现状、核心优势、实际应用中的案例以及…

JavaEE (1)

web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行 交互. 流程图如下 Web服务器是指驻留于因特网上某种类型计算机的程序. 可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界浏览&#xff1b; 它是一个容器&…

C++ —— 关于模板初阶

1.什么是模板 在C中&#xff0c;模板&#xff08;template&#xff09;是一种通用的编程工具&#xff0c;允许程序员编写通用代码以处理多种数据型或数据结构&#xff0c;而不需要为每种特定类型编写重复的代码&#xff0c;通过模板&#xff0c;可以实现代码的复用和泛化提高代…

QT5.9.9+Android开发环境搭建

文章目录 1.安装准备1.1 下载地址1.2 安装前准备2.安装过程2.1 JDK安装2.1.1 安装2.1.2 环境变量配置2.2 SDK配置2.2.1 安装2.2.2 环境变量配置2.2.3 adb 错误解决2.2.4 其他SDK安装2.2.5 AVD虚拟机配置2.3 NDK配置2.4 QT 5.9.9安装配置2.4.1 QT安装2.4.2 配置安卓环境3.QT工程…

【Linux】进程信号 --- 信号处理

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

Java---异常

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 &#xff0c;Java 欢迎大家访问~ 创作不易&#xff0c;大佬们点赞鼓励下吧~ 文章目录 什么是异常异常的分类编译…

安装 VMware vSphere vCenter 8.0

安装 VMware vSphere vCenter 8.0 1、运行安装程序 2、语言选择中文 3、点下一步 4、接受许可协议&#xff0c;点下一步 5、填写部署vCenter服务的ESXI主机IP地址以及对应ESXI主机的账号密码&#xff0c;这里将vCenter服务部署在192.168.1.14这台ESXi主机上 6、接受证书警告 7…

新手小白的pytorch学习第十弹----多类别分类问题模型以及九、十弹的练习

目录 1 多类别分类模型1.1 创建数据1.2 创建模型1.3 模型传出的数据1.4 损失函数和优化器1.5 训练和测试1.6 衡量模型性能的指标 2 练习Exercise 之前我们已经学习了 二分类问题&#xff0c;二分类就像抛硬币正面和反面&#xff0c;只有两种情况。 这里我们要探讨一个 多类别…