0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++学习笔记(二)

CHANBAEK 来源:小二电路 作者:小二电路 2023-03-07 15:54 次阅读

4、 常对象、常函数

(1) 常对象 :只能调用常函数; const Father p;

(2) 常函数 :成员函数之后加上const、函数内部不可以修改成员

属性;

代码:void func() const{}。

成员函数后面加const实质是修饰的是this的指向,this指针本身就是指针常量,指向不可以改,值可以改,再加上const之后,全都不可以改。 **注:普通对象也可以访问常函数。 **

但是在成员变量前加上mutable,常函数可以访问,常对象也可以访问。

5、 继承

(1)菱形继承:(虚基类)

一个动物类,一个马类,继承了动物类; 同样,一个驴类也继承了动物类。 这时,一个骡子类不仅继承了马类,也继承了驴类,这个时候从动物类里继承的数据很容易产生二义性,有好多数据,我们调用骡子类的时候到底用哪一个?

解决方法:在马类和驴类继承动物类的关键字前加上virtual,使其成为虚基类即可。 数据只保存最新赋值那一份。

Class Anmial
{Public:int m_age;};
Class Ma:virtual public Anmial{};
Class Lv:virtual public Anmial{};
Class Luozi{};

6、文件:

C++里对文件操作,包含的头文件#include。

文件分为两种:

①文本文件:就是记事本; 以ASCII码形式存在计算机中;

②二进制文件:以二进制的形式存在计算机中。

操作文件三大类:

①ofstream:写操作;

②ifstream:读操作;

③fstream:读写操作。

写文件:

创建文件输出流对象:ofstream ofs;

打开文件:ofs.open(“文件路径”,打开方式);

写数据:ofs<<”写入数据”;

关闭文件:ofs.open();

文件打开方式:

Ios::in:读文件而打开文件;

Ios::out:写文件而打开文件;

Ios::ate:初始位置:文件尾;

Ios::app:追加方式写文件;

Ios::trunc:如果文件存在,先删除,再创建;

Ios::binary:二进制方式。

读文件:(和写文件基本一致)

7、栈:(先进后出)

(1)顺序栈:

栈底指针:bottom,元素顶部指针:top; 记录栈内元素个数|top-bottom|+1。 如果bottom=top,表示栈空。

(2)链栈:

优点:便于多个栈共享存储空间和提高效率,并且不存在栈满上溢的情况。

8、队列:(先进先出)

队头:用来删除数据,头指针front(队头元素前一个位置);

队尾:用来插入数据,尾指针rear(队尾最后一个元素位置);

(1)循环队列:环状空间。 元素个数=rear(尾指针)-front(头指针)

(a)rear-front>0,就是循环队列元素个数;

(b)rear-front<0,需要加上循环队列的容量;

(c)rear-front=0,队列为空或者满。

(2)链式队列:

头指针指向队头结点,尾指针指向队尾结点。

队空条件:front=rear=NULL。

循环队列采用的是顺序存储结构;

一循环队列Q(1:m),初始状态为front=rear=m,经过一些列操作后,front=30,rear=10.则,按照顺序查找下,最坏比较次数为m-30+10+1=m-19个元素,比较次数为m-20。

9、new运算符

new运算符是在堆区创建数据由程序员手动开辟,手动释放。 **new返回的是该数据类型的指针。 **

例如:int *p = new int(10);

释放:delete p;

例如:int *p = new int[10];

释放:delete []p;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62415
  • 指针
    +关注

    关注

    1

    文章

    479

    浏览量

    70506
  • C++
    C++
    +关注

    关注

    22

    文章

    2104

    浏览量

    73482
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28328
  • CONST
    +关注

    关注

    0

    文章

    43

    浏览量

    8148
收藏 人收藏

    评论

    相关推荐

    C++之STL算法()

    C++之STL算法()
    的头像 发表于 07-18 14:49 967次阅读
    <b class='flag-5'>C++</b>之STL算法(<b class='flag-5'>二</b>)

    【请教】如何进阶c++学习avr

    我是新手,有c语言基础,单片机基础,想学习avr和c++以及vc++,请问过来人和各路高手支招,如何继续进阶学习?看书还是看视频?有没有好的书或者视频推荐?(有孙鑫的mfc,但是现在还
    发表于 04-15 00:17

    学习C++

    有意学习C++的朋友,可以加QQ群383309549,完全公益,免费授课,本群只接受没有程序设计经验、想学习C++程序设计的朋友哟!!{:1:}
    发表于 07-29 21:51

    学习c++的经验分享!

    转自:http://www.cndzz.com/download/4094_0/111678.html 学习学好c++的50条忠告1.把C++当成一门新的语言学习(和
    发表于 10-08 03:46

    如何学习C++,如何学好C++

    最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++?那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发
    发表于 08-20 06:27

    Linux C/C++ 学习路线相关资料下载

    一、秋招 Linux C/C++ offer 情况、Linux C/C++ 方向的一些思考三、计算机基础知识的梳理四、
    发表于 11-11 06:36

    学习C++的方法以及C++的就业方向

    学习方向:嵌入式+人工智能嵌入式是一门技术学习目标1.嵌入式开发概述;(面向对象在嵌入式开发中角色)2.嵌入式Linux C++编程;(C++概述、
    发表于 12-24 07:32

    CC++学习过程总结

      总是被同学们问到,如何学习CC++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。   一家之言,欢迎拍砖哈。   1、可以考虑先学习
    发表于 09-10 11:42 1236次阅读

    C++语言学习提纲

    C++语言学习提纲
    发表于 12-30 14:50 0次下载

    C++“指针”学习建议

    C++“指针”学习建议
    发表于 03-31 15:53 3次下载

    C++中类的继承访问级别学习总结(

    上一篇文章我们介绍了c++中类的继承学习总结;今天我们继续来分享c++中类的继承中的访问级别的学习总结。一、继承中的访问级别学习:1、子类是
    的头像 发表于 12-24 16:10 715次阅读

    Linux C/C++ 学习路线

    一、秋招 Linux C/C++ offer 情况、Linux C/C++ 方向的一些思考三、计算机基础知识的梳理四、
    发表于 11-06 19:36 14次下载
    Linux <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>学习</b>路线

    C++学习笔记c++的基本认识

    自这篇文章我们即将开始C++的奇幻之旅,其内容主要是读C++ Primer的总结和笔记,有兴趣可以找原版书看看,对于学习C++还是有很大帮助
    的头像 发表于 03-17 13:57 701次阅读

    C++学习笔记之顺序容器

    C++中的顺序容器是一种用于存储和管理元素序列的数据结构。它们提供了一组有序的元素,并支持在序列的任意位置插入和删除元素。C++标准库中提供了多种顺序容器,包括vector、deque、list、forward_list和array。
    的头像 发表于 05-11 17:05 560次阅读

    C/C++语言学习大全套

    电子发烧友网站提供《C/C++语言学习大全套.rar》资料免费下载
    发表于 11-18 14:33 4次下载
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>语言<b class='flag-5'>学习</b>大全套