网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月15日漏签0天
c语言吧 关注:798,977贴子:4,355,540
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 4 5 下一页 尾页
  • 77回复贴,共5页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

C++笔记(持续更新)

  • 只看楼主
  • 收藏

  • 回复
  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先说明一下发表本帖子的目的和意义。
目的:
1、希望各方大佬看出我的一些不足,能给一些建议当然更好
2、加深印象,因为CSDN 或者hig 有点麻烦。。不过以后会慢慢去学
意义:
1、旨在回忆学习的东西,方便后续查询(其实贴吧查询可能不是那么方便,所以在电子档做出来 同步会做一份文档)
2、因我是自学并且跟着视频,使用的是手写笔记,所以重新复习意义重大,主要是减少知识的冗余度,和新知识的增长。


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C++从编程类型上可以分为:
面向过程编程:自顶向下。功能分解逐层细化(说人话就是 程序=数据结构+算法(函数))
面向对象编程:就是OOP技术,在面向对象中算法和数据结构被看成是一个整体,叫做对象
面向对象的三大特性(重要):
封装:把客观的事物封装成抽象的类,并且类可以把数据和方法打包并区分(ps: 其实就是将数据和函数放在一个函数(类)里面,主要是为了保护数据。)
继承&派生:所表达的是类之间的关系,就是一个类可以派生出另外一个类,也可以说另一个类继承了该类。
多态:一个接口多种方法。(继承,多态都是基于类的基础上)
泛型编程:对于类型不会在乎。就是函数模板。


2025-05-15 21:11:05
广告
  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c++风格头文件 为 #include <iostream> (了解)
c语言头文件风格为带.h的风格,在C++中如果使用c语言风格的头文件可以直接使用.h头文件,或者在前面加c
如:#include <cstring> 使用字符串类型头文件
stdio.h 的含义是:std(标准) input(输入) out(输出)
iostream 的含义是:input(输入) out(输出) stream(流)
using namespace std: 其含义是使用标准命名空间
什么是标准命名空间?
在C语言中,c通过static 控制作用域 而c++使用命名空间控制作用域
namespace 是命名空间的关键字;


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

如图:A::a 表明归属,a是输入A的空间。
命名空间的定义:
1、命名空间只能在全局范围内定义(所有函数的外面,头文件的下面)
2、命名空间可以嵌套
3、命名空间是开方的,可以随时添加
4、命名空间内也可以存放函数(在内部声明外部定义)



  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
无命名空间:只作用于 本文件空间内部,相当于加上static ,只能在本文件内部访问


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
using 使用命名空间
1、C++中在main函数上面一般有个语句 是 using namespace :该语句的意思为,下方出现的变量先从命名空间中查找,如果找不到就从其他地方查找,实在找不到就报错。,如果不使用using 就需要使用 命名空间::成员 的方式进行访问
2、简化的代价:容易造成冲突,如果有局部变量(变量名称相同),则按照就近原则,局部变量的优先级更高,解决方法就是 命名空间::成员 的方式进行访问
using ::A :该语句含义为 仅访问A。
3、using 指明具体的命名空间 using A::a 含义为只有a 可以 不用命名空间,如果在函数中有其他局部变量,则会报错,如果使用全局变量则需要增加作用域
4、using 遇到函数重载,则会对所有函数都有效。


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
命名空间总结:
1、命名空间不可以在函数内部定义
2、使用命名空间成员最安全的方式 是命名空间::成员
3、using namespace 命名空间 使用整个命名空间
4、单独使用命名空间中的某个成员 可以使用using A::a 来具体成员


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C++中语法的加强:


01、在C语言中函数形参可以没有类型,但C++必须严格类型,因为C语言是弱语法语言,所以在C中不写形参类型可以使用任意形参 如 void func( a); 但C++中不可以
02、C语言不同类型转换可以赋值整型类型,C++中不允许
3、结构体的加强,C语言中在定义时需要用struct 修饰才可以创建结构变量,C++中不需要使用关键字就可以直接创建结构体,并且C++中的结构体可以直接在结构体中实现函数
4、C++ 新增"bool 类型"C语言中需要增加头文件 "stdbool.h"才可以使用bool类型

5、三目运算的加强 如: a>b?a:b; 在C语言中其返回的为右值(就是实际的值,并非标识符)在C++中三木运算返回的是左值,也就是可以进行赋值的标识符
6、C++中的const 是只读变量,const 修饰全局变量默认其外部链接
C++中const 修饰全局变量时 只作用于当前文件,默认当前内部链接,仅在当前源文件
如果需要使用外部链接可以增加 extern 如果不加只作用于内部链接。
另外注意:在调用其他文件中被const 修饰的全局变量时,声明不可以赋值
如图中 extern const int sun;//这里如果赋值,则编译器认为该只读常量不是声明而是定义了一个只读变量。根据就近原则,编译器会执行赋值的本文件内的数据
对于基础类型,C++不会给const 类型变量开辟空间,而是会放入一个符号表,也就是说所有存在该变量的地方都用其值替换,类似于define ,但会在取地址的时候开辟空间。
因const 修饰的只读变量未开辟空间,且仅从符号表中取值,而根据其地址改变的值,并不能通过变量获得,仅能从开辟的空间中获得。


注意:在c++中 const 和define 尽量使用const 来代替define


2025-05-15 21:05:05
广告
  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
知识点【01】
引用:给一个已定义好的变量取别名
1、&和别名结合表示引用
如: int sum=10; int &psum=sum;
2、取别名不会开辟空间,给谁取别名就定义谁
表达式为: 类型 &别名=标识名

3、引用必须初始化,并且一旦初始化就不能修改别名。
4、引用给数组取别名的方法:
方法1:通过对标识符取别名来引用
方法2;通过typedef 先对数组进行类型定义,在通过类型定义别名引用


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
引用的本质:在C++内部是一个常量指针,作为引用在其内部实现
引用在函数中使用时,可以在形参变量是使用引用
如: void sum(int &a,int &b);//同等于传入指针。
如: int data=100;
int &a=data;//同等于 int const * a=&data;
引用的好处:
1、可以不通过指针直接获取值;
2、当函数为左值时(就是可以赋值的变量时),那么返回值必须是引用,并且返回值不能是局部变量。(需要用static 修饰)
3、也可以对非局部变量的返回值取别名。
4、常量引用可以降低空间开销。(不需要开辟空间)


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
内联函数(inline):C++从c中继承的一个重要特性就是"效率"!,在C语言中把短而繁琐的函数写成宏
如 : #define MAX(x,y) x>y?x:y
但是C++特点,预处理不允许访问类的成员 也就是说预处理的define 不能作为类成员,所以诞生了内联函数,它没有调用的开销,又可以像普通函数那样进行传参,也可以作为类成员
内联函数是一个真正的函数,它具有普通函数的所有行为,在普通函数前加inline 它就变成了一个内联函数,但是注意函数体和声明结合在一起,单独定义不可以,因为内联函数同等于define
如 inline int max(int x,int y){ x>y?x:y;}//不能将函数体和声明分开
宏和内联函数的区别
宏会将参数替换到每个位置如: MAX(++x,y); 会变成 ++x>y?++x:y;


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C++内联函数的限制和注意事项:
任何在类中定义的函数都是内联函数,内联函数的发生是在编译时
1、不能存在任何形式的循环
2、不能存在过多判断
3、不能太大,不能对函数取地址


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
缺省参数(函数的默认参数)
C++声明函数原型的时候,可以为一个或者多个参数指定默认的参数值,当函数调用时如果没有传递参数,则默认调用缺省参数。
注意事项如下:
1、如果一个函数内部的形参设置了默认参数,那么从这个设置的位置开始后面所有的位置都必须设置默认参数
如 void func(int a=10,int b=20,int c);//这种情况下会出现错误,因为c没有设置缺省参数
但是 void func(int a,int b,int c=100);//这样可以,仅从开始设置的地方开始
2、如果函数的声明和实现是分开的,一般在声明处设置缺省参数,缺省参数只在声明处起作用
3、如果缺省参数在调用的时候只有一个参数或者参数少于形参,那么按照从左到右的方式对其
如 void func(int a=10,int b=20,int c=100);
调用时 func(30);//该值对应为 a=30 其他位置调用默认参数


  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
占位参数:C++在声明函数时,可以设置占位参数,所谓占位参数就是只有一个类型
如 int func(int a,int);//该函数中后面的int 就是占位参数,一般情况下,在函数体内无法使用,但调用的时候需要传递参数
如 func(15,10);只有重载后置++ 或者后置--用来区分。


2025-05-15 20:59:05
广告
  • 小眼儿吧唧
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
函数重载(C++多态体现)
使名字方便使用是任何设计语言的一个重要特性,zaiC++zhong 同一个函数名,在不同场景下可以有不同的含义
函数重载的条件:同一个作用域,参数个数不同,参数类型不同,参数顺序不同可以重载
注意:函数重载可以使用缺省参数,但是为防止二义性,缺省参数即使设置了,调用的时候也要最大参数

2、返回值不能作为函数重载的条件
如 void func(); 和int func(); 不可以进行函数重载


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 5 下一页 尾页
  • 77回复贴,共5页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示