༺ 个人主页 · 纪念229 ༻我的博客主页༒专栏目录《数据结构》༒༒专栏目录《算法》༒༒专栏目录《C》༒༒专栏目录《MySQL数据库》༒༒专栏目录《前端开发》༒༒其它有趣的计算机知识༒༺世上本没有路走的人多了自然就有了༻本篇文章讲的是C类和对象最后一节主要类与对象的代码讲解希望对你有所帮助文章目录1.类和对象代码讲解2.类和对象错题讲解1.类和对象代码讲解这个代码上次没讲完整这次补充//class Sum//{//public:// Sum()// {// _ret _i;// _i;// }//// //静态成员函数属于类不属于对象// //只可以调用静态成员变量// //静态成员函数没有this指针// //静态成员函数不经过对象也能调用// // a.GetRet();(可以不推荐)// // A::GetRet();(推荐调用方法)//// static int GetRet()// {// return _ret;// }// //static在不同位置上的含义// //局部变量 延长到全局函数结束结束// //全局变量/函数 只可在本文件可见隐藏// //类成员 不属于对象无this//////private:// static int _i;// static int _ret;// //静态成员变量// //也可以被成员函数调用////};////int Sum::_i 1;//int Sum::_ret 0;////静态成员变量属于类要在外面初始化////////所以这里我们要区分好类函数成员函数////类变量成员变量//////但是类函数要放在类里声明定义在成员函数前加一个static就是静态成员函数静态成员函数没有this指针静态成员函数不属于对象属于类调用时不用对象方便只可以调用静态成员变量但是成员函数可以调用成员变量和静态成员变量静态成员变量不属于类在构造函数调用后不会消失可用于等差数列等静态成员变量初始化要在类外面static在不同位置上的含义局部变量 寿命延长至全局函数结束全局变量/函数 只有本文件可见(隐藏)类成员不属于对象无this//class Solution//{// int Sum_Solution(int n) {// //Sum arr[n];// //c语言有些编译器支持变长数组有些要加一些配置支持// //c不支持变长数组有迭代器vector变长数组在std域内// //头文件#includevector// vectorSum arr(n);// //这里是类数组的实例化实际上是数组内每个类都会调用构造函数////// return Sum::GetRet();// }////};//class Sum//{//public:// Sum()// {// _ret _i;// _i;// }//// static int GetRet()// {// return _ret;// }//private:// static int _i;// static int _ret;//};//////int Sum::_i 1;//int Sum::_ret 0;这里就是静态成员函数/变量的具体代码用法等差数列想法就是利用构造函数调用实现求n项和在成员函数里写个类数组将它实例化它的每个元素类都会进行实例化调用构造函数因为调用的是静态成员变量生命周期长可以实现等差数列求n项和但是c不支持变长数组所以我们需要有关变长数组的迭代器(vector)(且这个东西在std域内)头文件#includevectorSum arr(n);写了这个东西迭代器会自动调用每个类元素的构造函数(n)里的n说明做个变长数组有多少元素用的不是[n]是(n)//class Solution//{// public:// int Sum_Solution(int n)// {// //讲的还是类数组// Sum* arr new Sum[n];// //new不需要头文件// //new的作用是在堆上申请一块空间(此域销毁了空间还在堆中需要手动销毁)// //如果有类类型会调用构造函数类对象和类数组都会调用构造函数有了new// //new最后返回指针变量// return Sum::GetRet();// }//};这里还有一个使用类数组的方式接收的是它的指针变量Sum* arr new Sum[n];用一个new 类名[n]就构造了一个类数组但是返回的是地址new不需要头文件new的作用是在堆上申请一块空间最后要将这个空间销毁//class Solution {// //类里面可以嵌套一个类//public:// //类定义不写访问限定符为private外面用不了嵌套的类// //改为public即可// class Sum {//Sum是Solution的嵌套// public:// Sum()// {// _ret _i;// _i;// }// };//public:// //Sum_Solution函数是Solution的成员函数// int Sum_Solution(int n)// {// //写个指针变量存类数组// Sum* arr new Sum[n];// //Sum* arr new Sum(n);// //这里不是new Sum(n);// //是new Sum[n];// return _ret;// }//private:// static int _i;// static int _ret;//};////int Solution::_i 1;//int Solution::_ret 0;////调试时Solution里看不到成员变量////因为该类没有成员变量那两个是静态成员变量////不在对象里属于类////调试时直接写变量名看不到要写类限定名////加变量名才可看见(它属于类不属于类的对象)//int main()//{// Solution s;// Solution::Sum a[3];// //通过类限定名调用嵌套的类 将其对象实例化// cout s.Sum_Solution(10) endl;// return 0;//}这里之前没在嵌套类前写访问限定符public外面的用不了用了即可调用调用要加类限定名调式时看不到成员变量原因是只有静态成员变量不属于对象属于类要在调试看到要加类限定名 与 静态成员变量名调用嵌套类直接在前面加类限定名即可//class A//{// friend class B;// //友元函数和友元类都在类中但都是外面普通// //的函数和类只是可以调用该对象的成员变量//// //对象里有成员变量后非静态成员函数// //成员函数可以被多个对象调用////////private:// int _a1 1;// int _a2 2;//};////class B//{//public:// void func1(const A aa)// {// cout aa._a1 endl;// cout _b1 endl;// }//// void func2(const A aa)// {// cout aa._a2 endl;// cout _b2 endl;// }//private:// int _b1 3;// int _b2 4;//};友元类和函数在类中但都是外面的普通类和函数但是可以调用对象的成员变量对象里有成员变量和非静态成员函数成员函数可以被多个对象调用//刘备 客卿class A{private://静态成员函数要单独在外初始化(调用要加限定名)staticint_k;int_h1;public:class B//B默认就是A的嵌套{public:voidfoo(constAa){cout_kendl;couta._hendl;}private:int_b11;int_b21;};};intA::_k1;intmain(){coutsizeof(A)endl;//这里看的是类的字节数类的字节数//只与对象的成员变量有关//_k是静态成员变量不属于对象不计入字节A aa1;A::B bb1;return0;}类的字节数只与对象的成员变量有关遵从对齐原则与静态成员变量无关2.类和对象错题讲解主要是讲类与对象我做错的题A.不一定因为inline只是一种建议需要看此函数是否能够成为内联函数B.inline函数的定义和声明必须在一起C.inline函数可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数D.递归用inline函数编译器会忽略这里我们要知道long在Windows 都是4字节shor 2字节在64位指针位8字节 32位 4字节因为是64位且最大默认对齐数是8字节所以会补成24字节对齐规则我C语言文章里有this指针在非静态成员函数里文章到这就到一段落希望对你有所帮助感谢观看
企业数字化 ERP 产品动态
相关推荐
FlashFXP上传了网站却打不开?3招免费工具自救指南 FlashFXP上传了网站却打不开?3招免费工具自救指南 改个需求建站公司拖一周,这种憋屈谁受得了?很多甲方朋友跟我吐槽,明明合同里写着“极速交付”,结果一个简单的文案修改、一张图片替换,对方客服就像石沉大海,回复永远是“正在排期”、“技术… · 2026/9/27 16:39:48
智能体技术进展:用 TaoToken 统一 Key 打通 AI Agent 工具调用与任务规划 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 16:39:36
图形设计网站搭建5大避坑指南:从备案到上线全流程拆解 图形设计网站搭建5大避坑指南:从备案到上线全流程拆解 做图形设计展示站,最怕什么?不是代码报错,而是备案流程一头雾水,域名解析绕晕,导致网站迟迟无法上线,客户急得跳脚。很多设计师或初创团队觉得做个展示页很简单,但在实际操作中,域名备案、服务… · 2026/9/27 16:39:36
Cadence Virtuoso差动放大器仿真:从DC扫描到AC分析实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:23
树莓派搭建RustDesk服务器:自建远程桌面的完整指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:23
Keil软件仿真进不了main?STM32启动流程与内存映射避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:23
CAN通信实战:从终端电阻到数据解析的自主导航避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:23
Modbus变量编址与软元件映射:汇川CodeSys平台从入门到实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:23
HFSS与PCB设计协同:从阻抗仿真到绿油补偿的射频制板全流程 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:15:17
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25