类(class)
struct person
{char name[16]; //名字float height; //身高float height; //体重char cell[32]; //手机号
}; class person
{private:char name[16]; //名字float height; //身高float weight; //体重char cell[32]; //手机号public:int running(char *WayName,int time); //跑步行为int eat(char *ObjectName,int l); //存放行为
}; class 和 struct 在 C++中的区别
类的访问修饰符
构造函数和析构函数
#include <iostream>
#include<string.h>
using namespace std;
class person
{private:char name[16]; //名字float height; //身高float weight; //体重char cell[32]; //手机号public:person();person(const char *ne,float h,float w,const char *ce);~person(){cout << name <<":执行了析构" << endl;}void run(){cout << "名字:"<< name << endl;cout << "身高:"<< height << endl;cout << "体重:"<< weight << endl;cout << "手机号:"<< cell << endl;}int running(char *WayName,int time); //跑步行为int eat(char *ObjectName,int l); //存放行为
};
person::person()
{strcpy(name,"zhangsan");height = 168.4;weight = 64.2;strcpy(cell,"17873432557");
}
person::person(const char *ne,float h,float w,const char *ce)
{strcpy(name,ne);height = h;weight = w;strcpy(cell,ce);
}
int main()
{person a; //创建一个对象,执行的是没有参数的构造函数person b{"jiuyue",178.7,76.6,"110"}; //创建一个对象执行有参数的构造函数a.run();b.run();return 0;
} 
person a ();
person a ;// 或person a {};
构造函数初始化列表
class CExample
{public:int a;float b;
//构造函数初始化列表CExample(): a(0),b(8.8){}
//构造函数内部赋值CExample(){a=0;b=8.8;}
};
我们来看第一种情况为什么要使用构造函数初始化列表:(成员对象没有默认构造函数)
#include <iostream>
#include<string.h>
using namespace std;
class A
{private:int a;char b;public:A(int x,char y){a = x;b = y;cout << "a 的构造" << endl;}
};
class B
{private:A a;int c;public:B(int z,char n,int x):a(z,n){ c = x;}
};
int main(int argc, char const *argv[])
{B b(1,'2',3);return 0;
} #include <iostream>
#include<string.h>
using namespace std;
class A
{private:int a;const int b;char& c;public:A(int x,char y):b(x),c(y){a = 3;//b = 4; //const 常量只能在声明时初始化,之后不能改变//c = ? //引用只能在声明的时候进行初始化}
};
int main(int argc, char const *argv[])
{char i = '1';A(4,i);return 0;
} #include <iostream>
#include<string.h>
using namespace std;
class A
{private:int a;const int b;char& c;public:A(int x,char y):b(x),c(y){a = 3;//b = 4; //const 常量只能在声明时初始化,之后不能改变//c = ? //引用只能在声明的时候进行初始化}
};
class B:public A
{private:int x;public:B(int a1,char b1):A(a1,b1){x = 2;}
};
int main(int argc, char const *argv[])
{char i = '1';B(4,i);return 0;
} 结论
int a = 3;
const char c = '1';
A b(2,5); int a;
const char c;
A b;
a = 3;
c = '1' //error
b(3,5); //error 临时对象
例如:
#include <iostream>
#include<string.h>
using namespace std;
class A
{private:int a;int b;public:A(int x,int y):a(x),b(y){cout << "构造" <<endl;}~A(){cout << "析构" <<endl;}
A fun()
{return A(a,b);
}
};
int main(int argc, char const *argv[])
{A i = A(1,2);A j = i.fun();return 0;
} 类的只读成员函数
class A
{private:int a;int b;public:A(int x,int y):a(x),b(y){}int fun() const{//...}
}; 拷贝构造函数
类名 (const 类名 &) ;
class A
{private:int a;int b;public:A(int x,int y):a(x),b(y){} //构造函数初始化列表A(const A &obj) //拷贝构造函数{// 构造函数的主体}
}; int main(int argc, char const *argv[])
{A i(1,2);A j = i; //调用了拷贝构造A k(i); //调用了拷贝构造return 0;
} 省略复制
#include <iostream>
#include<string.h>
using namespace std;
class A
{private:char buf[16];public:A(const char *str){strcpy(buf,str);cout << "构造函数" << endl;}A(const A& a){strcpy(this->buf,a.buf);cout << "拷贝构造" << endl;}
};
int main()
{A ob = "nihao";return 0;
} 

#include <iostream>
#include<string.h>
using namespace std;
class A
{private:char buf[16];public:A(const char *str){strcpy(buf,str);cout << "构造函数" << endl;}A(const A& a){strcpy(this->buf,a.buf);cout << "拷贝构造" << endl;}
};
A fnn()
{return A("nihao");
}
//或
A fuu()
{A a("nihao");return a;
}
int main()
{A ob = fuu();return 0;
} 

this 指针
class A
{private:int a;int b;public:A(int x,int y):a(x),b(y){} //构造函数初始化列表void fun(){this->a = 4; //this 就是该对象的地址(*this).b = 5; //*this 就相当于对象本身}
}; class A
{private:int a;int b;public:A(int x,int y):a(x),b(y){} //构造函数初始化列表void fun(int a,int b){//a = a; //erreor ,系统会以为是形参 a 赋值给形参 a,并不会改变成员变量的值//b = b; //同上理this->a = a;this->b = b;}
}; void sun ( A * this );void fun ( int a , int b , A * this );
A a ( 1 , 2 );a . sun (& a );a . fun ( 1 , 2 ,& a );
类的静态成员函数
class person
{
public:static void func(); //只需要在类内进行声明
}; 
int main(int argc, char const *argv[])
{A::fun();return 0;
} class A
{private:int a;int b;static int c;public:static void fun();
};
int A::c = 0; //静态成员变量初始化 #include <iostream>
#include<string.h>
using namespace std;
class A
{private:int a;int b;public:static int c;static void fun(){cout << c << endl;}
};
int A::c = 0;
int main(int argc, char const *argv[])
{A a;a.c = 0;A::c = 5;a.fun();return 0;
} 
友元函数和友元类(friend)
友元函数
#include <iostream>
#include<string.h>
using namespace std;
class A; //对 A 进行超前声明,不然 sun 参数找不到
int sun(int a,int b,A& c);
class A
{private:int x;int y;public:A(int a,int b):x(a),y(b){}~A(){}friend int sun(int a,int b,A& c);
};
int sun(int a,int b, A& c)
{c.x = a;c.y = b;return c.x+c.y;
}
int main(int argc, char const *argv[])
{A a(2,4);sun(1,2,a);return 0;
} #include <iostream>
#include<string.h>
using namespace std;
class A; //对 A 进行超前声明,不然 sun 参数找不到
class B
{private:int i; char j;public:B(int a,char c){i = a;j = c;}~B(){}int fun(A *rm);
};
class A
{private:int x;int y;public:A(int a,int b):x(a),y(b){}~A(){}friend int B::fun(A* rm); //友元
};
int B::fun(A *rm)
{i = rm->x + rm->y;j = 'a';return i;
}
int main(int argc, char const *argv[])
{A a(2,4);B b(2,'A');b.fun(&a);return 0;
} 友元类
#include <iostream>
#include<string.h>
using namespace std;
class A; //对 A 进行超前声明,不然 sun 参数找不到
class B
{private:int i; char j;public:B(int a,char c){i = a;j = c;}~B(){}int fun(A &a);
};
class A
{private:int x;int y;friend B;public:A(int a,int b):x(a),y(b){}~A(){}
};
int B::fun(A &a)
{i = a.x + a.y;return i;
}
int main(int argc, char const *argv[])
{A a(2,4);B b(2,'A');b.fun(a);return 0;
} 友元注意事项
相关文章:
类(class)
类是 C中一个非常重要的元素,可以说是 C的灵魂所在了,我们都知道 C说一种面向对象的编程语言,那么面向对象是一种什么概念呢?在 C程序设计中,所有一切东西都可以称之为对象,任何对象都应该具有属性和行为。…...
FPGA时序分析与约束(10)——生成时钟
一、概述 最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面…...
A. Hit the Lottery
#include<bits/stdc.h> using namespace std; const int N1e55; int n,a[N],res; int main(){scanf("%d",&n);int an/100;n%100;int bn/20;n%20;int cn/10;n%10;int dn/5;n%5;int en;cout<<abcde;return 0; }...
mvn: Downloading from pluginRepository
场景 maven 项目打包 mvn package 报git地址错误(有换新的git地址) 检查了下 settting.xml的配置没问题。是新的git地址。 处理: 用命令: mvn -X [DEBUG] Message styles: debug info warning error success failure stron…...
docker相关知识
docker-compose https://www.runoob.com/docker/docker-compose.html Compose 使用的三个步骤: 使用 Dockerfile 定义应用程序的环境。 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 最后,执行 …...
Springboot 集成 RocketMQ(进阶-消息)
0. 入门篇 Springboot 集成 RocketMq(入门)-CSDN博客 1. 异步消息 1.1 生产者 GetMapping("/send/async/{messageBody}")public String sendAsyncMsg(PathVariable("messageBody") String messageBody) {// 构建消息对象Message m…...
10 索引优化与查询优化
文章目录 索引失效案例关联查询优化对于左外连接对于内连接JOIN语句原理简单嵌套循环连接SNLJ索引嵌套循环连接INLJ块嵌套循环连接BNLJHash Join 子查询优化排序优化filesort算法:双路排序和单路排序 分组优化分页优化优先考虑覆盖索引索引下推ICP使用条件 其他查询…...
linux PVE安装
先下载安装包: ISO - Proxmox Virtual Environment 普通电脑主机的话,做个U盘启动盘,进行刷机即可。 如果还没制作U盘启动盘,建议用这个,方便多个镜像切换 Download . Ventoy 按照刷机提示页面一步步配置即可&#…...
ZZ038 物联网应用与服务赛题第J套
2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (J卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用…...
【寒武纪(3)】媒体处理系统的系统控制、视频输入和后处理子系统
系统控制 文章目录 系统控制1、配置视频缓存池Video Pool2、配置硬件IP为在线工作(不通过DDR数据交互)/ 离线工作(写入DDR)模式3、硬IP可以使用 非Video Block (VB)内存4、配置是否启动内存传递的压缩 视频…...
Linux下使用vscode编写Python项目
我此处是使用VScode远程连接的服务器,具体方法可看如下: 1、vscode中安装Python插件 按上面步骤安装好Python插件后,重启vscode; 2、选择Python解释器 创建Python项目结构: 按下F1,打开vscode命令栏&am…...
使用 curator 连接 zookeeper 集群 Invalid config event received
dubbo整合zookeeper 如图,错误日志 2023-11-04 21:16:18.699 ERROR 7459 [main-EventThread] org.apache.curator.framework.imps.EnsembleTracker Caller0 at org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java…...
大促期间也要做好低价治理
低价链接无处不在,对于品牌来说,日常治理低价是常规操作,那面对价格变化更快、促销信息更丰富的大促,对低价的治理要求会更高。否则容易被未授权在大促双十一、六一八期间分食流量。 力维网络有专业的团队为品牌提供低价治理服务&…...
【c++】——类和对象(中)——默认成员函数(上)
【学习目标】 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 目录 一.类的6个默认成员函数 二. 构造函数 2.1 概念 2.2.特性 三.析构函数 3.1.概念 3.2 特性 四.拷贝构造函数 4.1.概念 4.2.特性 一.类的6个默认成员函数 如果一个类中什么成员…...
钉钉企业微应用开发C#-HTTP回调接口
官方的STREAM回调推送的方式,试了几次都认证不过,就放弃了还是用HTTP的模式吧。 /// <summary>/// 应用回调/// </summary>/// <param name"model"></param>/// <returns></returns>public static Dictio…...
Rust编程基础之条件表达式和循环
1.if表达式 if 表达式允许根据条件执行不同的代码分支, 以下代码是一个典型的使用if表达式的例子: fn main() {let number 3; if number < 5 {println!("condition was true");} else {println!("condition was false");} } 所有的 if 表达式都以…...
MATLAB算法实战应用案例精讲-【人工智能】ROS机器人(补充篇)
目录 前言 ROS 机器人导航调参 1 速度和加速度 2 全局路径规划 3 局部路径规划...
基于8086汽车智能小车控制系统
**单片机设计介绍,基于8086汽车智能小车控制系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于 8086 的汽车智能小车控制系统是一种将微处理器技术应用于汽车控制的系统。下面是其主要的设计介绍: 硬…...
全光谱大面积氙光灯太阳光模拟器老化测试
氙灯光源太阳光模拟器广泛应用于光解水产氢、光化学催化、二氧化碳制甲醇、光化学合成、光降解污染物、 水污染处理、生物光照,光学检测、太阳能电池研究、荧光材料测试(透射、反射、吸收) 太阳能电池特性测试,光热转化,光电材料特性测试,生物…...
linux添加一条到中间路由器的路由
有时候需要配置一些明细路由,不能直接通过网关进行路由转发 配置示例 ip route add 10.0.12.0/24 via 10.0.41.1 dev bond0 这个命令是用于在Linux操作系统上配置IP路由的命令。具体来说,这个命令的含义是: ip route add: 这部分表示要添加…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
