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

第9、10课时_预习

第三周 周三上

复习:

八股

什么是类?什么是对象?他们之间的关系是什么?

类是一组具有相同属性和行为的对象的抽象描述。是对象的类型
对象是描述客观事物的实体,每个对象都有其行为、属性和标识
类是对象的抽象,对象是类的具体实例。

可能的题

矩形类,实现求面积,周长的功能

tips:java小驼峰,c系列大驼峰

img
*this 不能显示加上

img


img
这里复习一下构造函数

分类

  • 隐式构造函数
  • 用户自定义构造函数
    用户自定义构造函数又分为,有参和无参
    有参又分为指定默认值和不指定默认值
    无参,也可以在函数体内写语句

构造函数可以重载,即一个类可以有多个构造函数

上述报错:用户自定义构造函数,如果有参数,且不含默认参数,船舰对象时必须初始化,和寒假那题差不多
对象成员初始化问题


#include <iostream>
using namespace std;class Rectangle{private:int length,width;public:
//		void GetArea(int length,int width) :length(length),width(width) 
//		只有构造函数才能用初始化列表Rectangle(int length,int width):length(length),width(width){}//属性,类内部都可以用int GetArea(){return length*width;} int GetPerimeter(){return width+length;}
}; int main(){Rectangle rec1(1,2),rec2(5,1000);
//	Rectangle rec2(5,1000);cout<<rec1.GetArea()<<" "<<rec1.GetPerimeter()<<endl;cout<<rec2.GetArea()<<"\t"<<rec2.GetPerimeter();
}

![img](https://img2024.cnblogs.com/blog/3564735/202603/3564735-20260317095605643-694819781.png

转义字符
\t制表符

私有化
img
解决方法

  • 构造函数
  • 成员函数间接调用
  • public中定义数据成员

指向对象的指针
对象的引用

#include <iostream>
#include <string>using namespace std;class Worker{public:int num;string name;float salary;void show(){cout<<"num:"<<num<<endl;cout<<"name:"<<name<<endl;cout<<"salary:"<<salary<<endl;}
};int main(){Worker w1,w2,w3;Worker *p=&w1;Worker &w4=w3;p->name="张三";p->num=1;p->salary=4000;p->show();w3.name="里斯";w3.num=2;w3.salary=4000;w3.show();}

img

4000隐式转换成单精度浮点型
4000.0 双精度浮点型
4000.0f c风格,强转单精度
(float)4000 强转单精度

指向对象成员变量的指针


int *P;
Worker w2;
p=&w2.salary;
w2.salary=4000;
cout<<*p<<endl;

成员函数

  1. private public protected

  2. 类中,自动内联,现在内联被淘汰,编译器会自动识别帮助我们内联

  3. 类中声明,可以只写参数类型

  4. 类中声明,类外定义, 类名::函数名
    ::域作用符

  5. 成员函数的存储方式

同一类定义了多个对象时,每个对象的数据成员各自占据独立的空间,而共享一个共用的函数代码段,不占用对象的存储空间

img

12
一个主函数文件
一个类的声明头文件--数据成员和成员函数的声明
一个类中成员函数的定义文件

// rectangle.h
class rectangle 
{ private:int  length, width;public:void Put ( );void display ( );  };
// rectangle.cpp
#include <iostream.h>
#include “rectangle.h”
void rectangle::Put ( )
{ length = 5;width = 4; }
void rectangle:: display ( )
{ cout <<“area = “ << length*width << endl; }// main.cpp
#include <iostream.h>
#include “rectangle.h”void main ( )
{ rectangle r1;r1.display ( );
}

然后就是类库,

类库包含两个组成部分
类声明头文件
经过编译的头文件函数的定义的目标文件

img

#include <iostream>
using namespace std;class Rectangle{private:double length,width,height;public:Getter(){cout<<"请您输入长宽高"<<endl;cin>>length>>width>>height;}double GetV(){return length*width*height;}double PrintV(){cout<<"体积为"<<GetV()<<endl;}
};int main(){Rectangle r1;r1.Getter();r1.PrintV();}

试一下,球体,三角形的

http://www.jsqmd.com/news/490110/

相关文章:

  • 如何使用无障碍技术实现自动化脚本?
  • Phi-3-vision-128k-instruct效果实测:手写公式识别+数学题分步解答演示
  • ArcGIS实战:二维点线数据的三维可视化转换技巧
  • 本地商家小红书:搜索流量 vs 推荐流量,打法完全不同 - Redbook_CD
  • 从编译到封装:基于GmSSL 3.x的SM2 C++实战指南
  • Z-Image Atelier 与物联网结合:为STM32项目生成产品外观与UI界面概念图
  • 看2026上海靠谱宠物牙科医院分析,选对不踩坑,宠物骨科专家/腹腔镜绝育/宠物皮肤科/狗狗体检,宠物牙科医院哪家最好 - 品牌推荐师
  • Notepad++函数列表快捷键F8设置全攻略(附冲突解决技巧)
  • 2026看中医去哪里?这份就医指南请收好 - 品牌排行榜
  • Qwen3-14b_int4_awq从零开始:Linux环境部署vLLM+Chainlit全流程图文详解
  • 从入门到实战:TypeScript 全栈开发核心指南
  • 2026四川资质代办优质机构推荐榜 高通过率优先 - 优质品牌商家
  • Gemma-3 Pixel Studio快速部署:无需conda环境,纯pip+Streamlit启动方案
  • 利用天地图底图快速构建专业研究区位图(附实战技巧与数据)
  • B端产品经理必看:用ER图搞定汽车美容门店系统的数据库设计(附完整案例)
  • SolidWorks到Unity全流程:如何将自定义模型完美导入Unity(含FBX转换避坑指南)
  • 手把手教你破解移动光猫g140wc超密(附telnet开启教程)
  • 告别内存溢出:jadx-gui-1.5.0-with-jre-win JVM内存调优实战指南
  • 2026办公家具工厂直供品牌评估报告:五大高适配性服务商推荐 - 速递信息
  • 分期乐沃尔玛购物卡套装回收的3种方式 - 畅回收小程序
  • MATLAB变量内容差异对比:从基础函数到实战场景的深度解析
  • Windows环境避坑指南:用PyInstaller打包PaddleOCR项目时如何精简依赖文件
  • SUNFLOWER MATCH LAB入门:Git版本控制管理模型训练与实验代码
  • 2026年Cesium实战指南:从原生示例到高级空间分析
  • 总结:不锈钢离心泵轴承润滑方式和启动前的准备工作
  • KrkrzExtract实战指南:3大场景高效解决xp3资源处理难题
  • SVG viewBox实战:如何用负坐标实现动态裁剪效果(附完整代码)
  • 4个步骤掌握krkrz引擎资源处理全流程
  • 文件上传
  • FireRedASR-AED-L在Linux环境下的性能调优实战