面向对象程序设计复习笔记

面向对象笔记(全) 总结面向对象的所有笔记 阅读详情

大一下学期面向对象程序设计c++复习整理

(考场打印版)

1、char a[50]

字符数组输入输出: char a[50]; cin>>a; cout<<a<<endl; 其它类型数组要用for循环一个个数据输入

字符数组长度要尽量大一点,结束符"\0"。

法一:将char* n_phone改成string ;法二:给n_phone分配空间,然后用strcpy拷贝 void student::setphone(char* phone) {     n_phone = new char[strlen(phone) + 1];     strcpy(n_phone, phone); }

字符数组拷贝strcmp()。strcpy在VS2019中记得关闭安全检查(右键属性-c/c++-代码生成-禁用安全检查)

单引号‘用于单个字符’A‘,大于长度1要用双引号。

字符指针数组 const char *pMonth[12] = { "January","February".....}

2、读取‘,’前的字符用 getline进行输入,如下所示

#include <string>

string  name;

getline(cin, name, ',');

 由于输入字符串中有空格,用 getline进行输入,如下所示

char a[50];

cin.getline(a, 50);

4、求最大最小的初始值时:使用系统最大最小值 INT_MIN    INT_MAX DBL_MIN   DBL_MAX FLT_MIN    FLT_MAX 提交到OJ是加上头文件limits.h

5、CVector c = a+b;拷贝构造

CVector c;

c = a+b;赋值运算符重载。

如果发现~CVector()中的delete注释掉来检查

6、oj提交错误显示CPU运行超时:

原因:死循环或者输入变量个数与题目不匹配。一定要改到return value 0 程序正常结束返回值0;

7、CDate类计今年到这天的天数:

class CDate
{
private:
    int year, month, day;
public:
    CDate(){}
    CDate(int y, int m, int d){.......}
    bool isLeapYear(){return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;}
    int getDayofYear(){
        int i=0, sum = day;
        int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        if (isLeapYear())
            a[2]++;
        // 求日期的天数
        for (i = 0; i < month; i++) sum += a[i];
        return sum;
}

计算两天的差:类内定义friend int operator -(const stu& x);类外定义如下:

 8、#include <algorithm>

数组:t[n]

sort(t, t + n);

9、静态数据成员记得在全局初始化:int Account::interestRate=0;

10、输出指定位数的小数

#include <iomanip>

cout <<fixed<< setprecision(2) << score.Average() << endl;

输出不够位补零

cout << setw(4) << setfill('0') << d.year;

继承与多态:

class CNewId :public COldId {
protected:
	char* pId18; CDate issueDay; int validYear;
public:
	CNewId(char* pIdVal2, char* pIdVal, char* pNameVal,
CDate& day, CDate& day2, int valid) :COldId(pIdVal, pNameVal, day), issueDay(day2) {
		validYear = valid;
		pId18 = new char[strlen(pIdVal2)+1];
		strcpy(pId18, pIdVal2);
	}//本题中余数与校验码的对应关系为1,0,X,9,8,7,6,5,4,3,2这种题记得用数组代替ifelse
}
---------------------------------------------------------------------------------
class CPeople{};
class CStudent :virtual public CPeople{};
class CTeacher :virtual public CPeople{};
class CGradOnWork :public CStudent, public CTeacher{};
CPeople c1(name, sex, age);
c1.print();
CStudent c2(name, sex, age, number, score);
c2.CPeople::print();//访问基类的成员函数时
c2.print();//访问子类自定义的成员函数时(定义时会把基类同名的函数覆盖掉)
CGradOnWork c4(.......);
c4.CPeople::print();
c4.CTeacher::print();
c4.print();

虚函数:

在函数前加上virtual即可:virtual void deposit(int m){}   子类基类里都有这个。

若要求用基类指针数组,使它每一个元素指向每一个派生类对象,做测试:基类指针指向子类对象,统一调用接口。

在基类定义纯虚函数:

virtual void Withdrawal(float amount) = 0;//设为0,其派生类被期待用一个具体的函数来重载。 

 对成员函数使用关键字final必须声明为virtual虚函数,因为只有虚函数才支持在子类中重写,这时final关键字才会发挥禁止重写的功能。

运算符重载

重载为类成员函数时   参数个数=原操作数个数-1    (后置++、--除外)

重载为友元函数时  参数个数=原操作数个数,且至少应该有一个自定义类型的形参。

friend Complex operator+(Complex& a,Complex& b);//类内定义//类外实现

赋值运算符‘=’、下标运算符‘[]’、成员选择运算符‘->’和函数调用运算符‘()’等不能用友元函数形式重载

类型转换运算符重载:

operator int()  return (rp.getX() - lp.getX()) * (lp.getY() - rp.getY());

使用时:CRectangle rect1;      cout<< (int)rect1;

 赋值运算符重载:

传入的参数需要声明为常量引用。释放实例自身已有的内存,如果在分配新内存前忘记释放自己已有的内存,则会出现内存泄漏。 判断传入参数与当前实例是不是同一个实例,如果是同一个,则立即返回

 

 

IO运算符重载

 

模板

函数模板 找出票数最高的:

求数组中的最大元素和第二大元素(友元)

矩阵乘法(运算符重载)

 

(格式也没怎么整理了,明天考试,就,加油吧)

面向对象程序设计C++听课笔记 面向对象程序设计C++听课笔记,依据中山大学博士的视频讲授和浙大副教授的讲课记录。 立即下载

相关推荐

java面向对象编程知识点笔记整理与总结0

java面向对象编程知识点笔记整理与总结,在原先的课程笔记中整理出来的精华,复习起来十分方便,非常实用!

面向对象程序设计笔记

1.构造函数与析构函数 如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。 定义分成两部分,一是静态变量的初始化,二是静态函数的定义。 静态变量的初始化不能在类的定义中,但是可以在类的外部通过使用范围解析运算符::来重新声明静态变量从而对它进行初始化。而定义静态函数,那就与定义实例函数一样了。 静态成员的访问有以下两种方法: 使用类型名::静态成员格式访问;(可以将其看做是一个全局变量,只不过变量名要带上类型名::的前缀) 通过对象访问;(可.

zhn的博客 1614

单细胞轨迹分析实战:基于Monocle和CytoTRACE的细胞分化潜能与状态解析

本文提供了基于Monocle和CytoTRACE的单细胞轨迹分析实战指南。通过乳腺癌数据集,详细演示了从数据准备、伪时序分析、细胞分化潜能评估到分支点功能挖掘的全流程。结合两种工具的优势,能有效解析细胞状态动态演变,为发育和疾病研究提供关键见解。

weixin_29070861的博客 478

【软考】面向对象程序设计复习指南

1、根据考纲 (1)分析模式与设计模式知识 (2)面向对象程序设计知识 (3)用C++语言实现常见的设计模式及应用程序。 (4)用Java语言实现常见的设计模式及应用程序。 2、设计模式 什么是设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以提高代码复用度、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己、于他人、于系统都是有利的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 设计模式的组成

小哈里的博客 1550

自学PCB思路 | PCB设计零基础入门-小白适用(附详细入门经验分享)

本人大一在实践课上就听说PCB,被虎的一楞一楞的,不过现在回看,发现其实并没有相信的那么难!想着把自己这一路摸索的学习路线分享一下,当时我是一边摸索一边上手,一把鼻涕一把泪的过来的。如果你想搞硬件或者需要搞硬件,下面是我的入门学习过程,希望可以帮到你。目录前言选择一款设计软件好的入门课程掌握抄板元件采购焊板子烙铁头热风枪自己半设计明确设计需求全设计最后我并非什么大佬,也没法自己去教大家如何画板。

自动化小秋葵的博客 1万+

别再硬啃C代码了!用Simulink的Matlab Function模块手把手教你搭建CRC8校验模型(附完整M脚本)

本文详细介绍了如何利用Simulink的Matlab Function模块轻松实现CRC8校验模型,替代传统的C代码编写。通过可视化建模和即时验证,开发者可以高效完成算法设计,并自动生成嵌入式代码。文章包含完整的M脚本示例和工程实践技巧,特别适合嵌入式系统开发人员提升工作效率。

weixin_42520661的博客 183

面向对象与面向过程的区别

1. 面向对象 与 面向过程的区别 都是一种思想,思维方式,思考问题的角度. 面向过程 : "关注实现过程|步骤,需要通过几步完成?"然后一步一步执行。 面向对象 : "关注我该找谁来完成 ?“实现步骤不关注,只关注这个"谁”,他就是对象,面向对象是依托于面向过程的。 面向对象优点: 1.更贴合于显示生活中人们的思考角度。 2.面向对象更贴合生活中管理者,面向过程更贴合与执行者。 3.将复杂的问题简单化。 以面向对象的思想进行编程 :将程序与生活紧密联系。 类 : 描述图纸|模板

qq_43658407的博客 550

STM32 移植FreeModbus详细过程

modbus是一个非常好的串口协议(当然也能用在网口上),它简洁、规范、强大。可以满足大部分的工业、嵌入式需求。 这里详细说下如何将freemodbus移植到stm32平台。我之前下载的版本是1.6,我会在我的下载链接里面加上1.6的freemodbus压缩包以及我已经移植好的stm32 for freemodbus版本。我上传的移植好的绝对没问题,经过多个板子测试。这里编译器使用的是keil5.28,单片机用的是STM32F103RCT6。 移植到VET6以及ZET6的话只需要改一下选择的芯片就好,改法:

qq_40305944的博客 8万+

C++学习笔记(面向对象篇)

C++面向对象程序设计学习笔记

m0_67682956的博客 1973

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

【保姆级教程】教你如何轻松获取MIMIC数据使用权限

文章非常详细地介绍了MIMIC数据库申请使用的全部步骤。

越努力 越幸运 6600

面向对象程序设计(JAVA)复习笔记(上)

面向对象程序设计(JAVA)复习笔记(更新中)

CK_0ff的博客 2723

STM32实战开发(128):智能位移检测 - 使用STM32实现位移检测

STM32作为一款功能强大的微控制器,由于其出色的处理能力、丰富的外设接口和低功耗特点,成为实现智能位移检测系统的理想选择。未来,可以通过结合更多传感器、多种数据处理算法以及云平台技术,进一步提升系统的智能化水平,优化位移测量的精度和稳定性。本篇博客将介绍如何使用STM32微控制器实现智能位移检测系统,涉及硬件设计、传感器选择、软件开发等多个方面,提供详细的设计步骤,并给出完整的代码示例,帮助开发者快速搭建智能位移检测系统。蜂鸣器连接到STM32的GPIO端口,当位移超过设定的阈值时,蜂鸣器发出警报。

2201_76125393的博客 901

复习笔记:面向对象程序设计Java

Java基础知识点整理 Java概述 Java的三个版本: 标准版Java SE,企业版Java EE,微型版Java ME。 编译: 源程序通过Java编译器生成可执行代码(字节码)。 解释: 字节码通过Java虚拟机(JVM)实现:代码的装入,代码的校验,代码的运行。 目前Java代码有两种执行方式: 解释执行方式:每次翻译,执行一小段。 即时编译方式:字节码全部转换成机器码再执行。 面向对象的特性: 封装:将对象内的数据和代码联编起来,形成一个对象; 继承:某一类对象直接使用另一

瑞瑞ruirui的博客 653

Pointnet++改进90:2025最新改进模块-EVA模块

本教程提出了一种改进PointNet++特征提取模块的方法,通过在PointNetSetAbstraction模块中加入NAMAttention注意力机制,显著提升了模型性能。具体改进包括:1)新建eva.py文件,实现了包含SDLSKA、CKS等关键组件的EVA模块;2)在pointnet2_utils.py中添加Conv和PointNetSetAbstractionAttention类,整合注意力机制;3)修改pointnet2_sem_seg.py模型结构。这种改进方法降低了实现难度,同时保持了33F

AIcurator的博客 361

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python复习笔记[10] —— 面向对象程序设计

 通过代码说明python中的OOP: # 定义类 class Student:     '这是Student的文档字符串'     studentCount = 0;   # 类变量,所有类的实例共享该变量       def __init__(self, name, age):        # 构造函数         sel

Han的小站 741

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python语言程序设计基础笔记的价值与学习方法

这也说明了另笔记是知识的总结与提炼,能够帮助学习者系统地梳理Python语言程序设计的基础知识,形成清晰的知识体系。如果我们将目光投向这方面的话,笔记是学习的回顾与反思,学习者在编写笔记的过程中能够加深对知识点的理解,发现自己的不足之处,并及时进行纠正。问题在于无法否认笔记是复习与巩固的重要工具,学习者在复习时可以通过笔记快速回顾所学知识,巩固记忆,提高学习效果。在这个过程中,编写Python语言程序设计基础笔记成为了一种有效的学习方式。三、Python语言程序设计基础笔记的学习方法。

a159900的博客 506

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

我的《翁恺Java面向对象程序设计》同步笔记

边看视频边记录的,翁恺视频中的项目代码都放里面了。 地址:JAVA/面向对象学习笔记(1) | 轻笑Chuckle所看教程(视频):《浙江大学-翁恺-Java-面向对象程序设计》作为我自己的复习笔记,也可以当做该视频的同步笔记 面向对象什么是面向对象面向对象是把一组数据结构和处理他们的方法组成对象。把具有相同行为的对象归纳成类通过封装隐藏类的内部细节通过继承使类得到泛化通过多态实现基于对象类型的动态分派 只能操作对象一切事物都是调用加封装的结果程序实现的一切功能都是调用加封装的结果程序调用一个个对象封装h

qxchuckle的博客 1630

C++面向对象程序设计-复习笔记

C++面向对象程序设计(第三版) 杜茂康,谢青主编 个人笔记

flipness的博客 264

java-面向对象程序设计复习笔记

子类对象当成父类对象,只能调用父类的功能/方法,如果子类重写了父类中声明过的方法,调用该方法时使用的是子类中的。向下转型时,是为了方便使用子类的特殊方法,也就是说当子类方法做了功能拓展,就可以直接使用子类功能。2、protected: 这种权限是为继承而设计的,protected所修饰的成员,同包均可访问,外包只有子类可以访问。Private (私有) 是访问权限较为严格的修饰符,只允许当前声明它的类的内部访问。3、包访问权限(无修饰): 只对同包的类具有访问的权限,外包的所有类都不能访问。

m0_74620195的博客 77

面向对象程序设计(JAVA)复习笔记(下)

面向对象程序设计(JAVA)复习笔记(下)

CK_0ff的博客 1753

javascript复习笔记六----面向对象程序设计(继承)

继承 1.基本原型链 function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = function(){ return this.property; }; function SubType(){ this.subproperty = false; } //继承了SuperT

busyboy 697

郑莉老师c++第五版+b站视频 学习笔记

c++

qq_42863961的博客 1570

西安交通大学软件工程专业笔记补全计划

关于XJTUSE,有太多的喜乐悲伤,此笔记仅用于帮助各位学弟学妹少走一些坑,别无他用。不必知道我是谁。应该会在大四的时候把所有课程都补一补吧,除了某些实在不会的课。

weixin_47692652的博客 1648

C++面向对象程序设计期末复习笔记[吉林大学](结合历年题速成85)

1.头文件 头文件的作用就是被其他的.cpp包含进去的.它们本身并不参与编译,但实际上,它们的内容却在多个.cpp文件中得到了编译.根据"定义只能一次"原则我们知道,头文件中不能放定义.(注:int a;是定义,开辟存储空间了,而 extern int a;是一个声明,因为没有开辟空间) 但是,"不能放定义"这个规则有三个例外: 1)可放const对象的定义.因为全局的const对象链接属性默认是内部链接,所以只在当前文件有效.所以即使头文件被包含到多个.cpp文件中,这个对象也都只在包含它的那个文件中有效

daixd5520的博客 8345

程序设计语言+嵌入式系统设计师备考笔记

本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。

qq_45049500的博客 1725
上一篇: 电控部近期学习总结
下一篇: 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
studyingbear
博客等级 码龄5年 20粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值