C++基础知识总结(一)

  1. C++程序以.cpp作为文件扩展名。
  2. C++标准输入输出库的头文件是iostream,在程序中使用:#include <iostream>//包含头文件
  3. C++使用命名空间:using namespace std;
  4. 对象的定义及初始化:int z(0)//等价int z=0
  5. 用关键字const修饰的标识符是一类特殊的常量,成为符号常量。因为被const修饰的变量的值在程序中不能改变,所以在声明符号常量时,必须对符号常量进行初始化,除非这个变量是用extern修饰的外部变量。例如:const int i=8extern const int d
  6. 函数重载:为同一个函数定义几个版本,从而使一个函数名具有多种功能。
  7. 字符长度:int 4个字节   整数常量类型:十进制、长整型(后缀Ll)、八进制(前缀为零)、十六进制(前缀为0x
  8. 动态分配内存:new 类型名[size]//申请可以存储size个该数据类型的对象。
  9. 引用:数据类型 &别名=对象名 需要注意:不能声明数组的引用,也不可以声明引用的引用,可以声明对指针的引用(int * &p1=p2)和指向引用的指针(例如:int *p=&a是正确的).但是int *&p=&a是错误的。
  10. 对指针使用const限定符(强制改变访问权限)
    1. 指向常量的指针:const int *p//*p是个常量,不能将*p走位左值进行操作
    2. 指针常量int *const p//在整个生存周期内其值是不会改变的。
    3. 指向常量的常量指针:const int *const p//必须赋初始值(eg.int x=3;const int *const p=&x;)
  11. 泛型算法:提供的操作与元素的类型无关。
  12. 查找数组内容:find(a,a+lenvalue);//该函数返回位置指针。
  13. 设置显示小数的位数(setprecision)
  14. C++类默认为private
  15. 面向过程就是不必了解计算机的内部逻辑,而把精力主要集中在对如何求解问题的算法逻辑和过程的描述上。
  16. 函数,就是模块的基本单位,是对处理问题的抽象。
  17. 结构化程序设计使用的功能抽象,面向对象程序设计不仅能进行功能抽象,而且能进行数据的抽象。
  18. 对象描述的三要素:对象名、属性、操作
  19. C++规定字符串的计数是从0开始的。对象名.find(要查找的字符串,开始查找的位置)//函数返回查找到的字符串在主串的位置。找不到的时候返回-1
  20. C++标准程序库提供complex类定义复数对象。在程序中包含这个类的头文件:#include<complex>
  21. 函数的参数及其传递方式
    1. 对象作为函数参数:是将实参对象的值传递给形参对象,这种传递是单向的。(传对象不会改变原来对象数据成员值)
    2. 对象指针作为函数参数,形参是对象的指针,实参是对象的地址。
    3. 引用作为函数参数。实参对象和形参对象代表同一个对象,所以改变形参对象的值就是改变实参对象的值。

 

  1. const修饰传递参数,意思是通知函数,它只能使用参数而无权修改它。这主要是为了提高系统的自身安全。
  2. 函数返回值可以是除数组和函数以外的任何类型。
    1. 返回引用的函数(目的是将该函数用在赋值运算符的左边。
    2. 返回指针的函数
    3. 返回对象的函数
  3. 除具有循环语句、switch语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。使用内联函数能加快程序执行速度。
  4. 在类中声明的任何成员不能使用externantoregister关键字进行修饰。
  5. 定义成员函数

返回类型 类名::成员函数名(参数列表)

{

成员函数的函数体//内部实现

}

  1. 类对象的指针可以通过—>运算符访问对象的成员
  1. 在定义析构函数时,不能指定任何返回类型,即使指定void返回类型也不行,析构函数也不能指定参数,但是可以显示地说明参数为void
  1. 复制构造函数:用已有的对象来创建新的对象。A::A(const A &)

转载于:https://www.cnblogs.com/fengkungui/p/6789582.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android安全与逆向之Java虚拟机和Dalvik虚拟机的区别

Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性&#xff0c;Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用&#xff0c;和在低速CPU上表现出的高性能&#xff0c;确实令人刮目相看。 依赖于底层Posix兼容的操作系统&#xff0c;它可以简单的…

软件与硬件我该选哪个_MacBook Air 和 MacBook Pro 该选哪个……?

一个多月前&#xff0c;Apple 发布了 2019 款 MacBook Air 和 MacBook Pro&#xff0c;经过这一次的更新之后&#xff0c;MacBook 产品线总算变得更加清晰了&#xff0c;同时也减少了之前存在的价格和定位产生冲突的现象。不过从购买决策来看&#xff0c;我发现还是有些问题难倒…

只要300页!火遍全网的NET6+linux知识手册!拿走不谢!

这是微软公司基于最新的.net 6编写&#xff0c;循序渐进地对.net6/C#10进行讲解。对于零基础可以作为.net的快速入门教材&#xff0c;对于高级程序员而言&#xff0c;这也是你的进阶之路&#xff01;NO.1资料介绍该手册,全面的介绍.net6和c#的新特性&#xff0c;看完这个资料&a…

Linux0.11内核剖析--内核体系结构

一个完整可用的操作系统主要由 4 部分组成&#xff1a;硬件、操作系统内核、操作系统服务和用户应用程序&#xff0c;如下图所示&#xff1a; 用户应用程序是指那些字处理程序、 Internet 浏览器程序或用户自行编制的各种应用程序&#xff1b; 操作系统服务程序是指那些向用户所…

centos 6安装报错

Missing ISO 9660 imageThe installer has tried to mount image # 1. but cannot find it on the hard drive.Please copy this image to the drive and click Retry. Click Exit to abort the installation. 这个是安装过程中你没有把iso镜像拷贝到你的U盘所导致&#xff01;…

ubuntu上最使用jni最简单易懂的例子

第一步:爆结果照,让你有坚持下去的信心 二、NDK解释 NDK全称:Native Development Kit。 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的m…

buck变换器设计matlab_一种用于Boost PFC变换器的改进关断时间控制策略

随着我国工业的发展&#xff0c;越来越多的非线性负荷接入电网&#xff0c;各种换流设备的使用&#xff0c;使电网的电压波形发生畸变&#xff0c;造成电能质量下降&#xff0c;威胁电网和各种用电设备的安全、经济运行。为了能够确保电网安全&#xff0c;研制出了各种PFC变换器…

你初吻啥时候没有的​?​

1 &#xff1f;&#xff1f;&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 世界上最难受的三件事&#xff08;via.惨绿少年金三坨&#xff0c;侵删&#xff09;▼3 漏网之鱼▼4 有哪里不太对劲&#xff1f;&#xff08;素材来源网络&#xff0c;侵删…

乡亲们,我们创建了 Dapr 中文交流频道

我们创建了 Dapr 中文交流 QQ 频道&#xff0c;欢迎大家加入&#xff01;加入方式在文章最后一节。为什么要创建频道&#xff1f; 解决什么问题**专业性&#xff0c;“你可以在我们群里面钓鱼&#xff0c;因为都是水”** 你肯定加过非常多的这种叫什么技术交流群。你会发现这个…

Maven搭建SpringMVC+Mybatis项目详解【转】

为什么80%的码农都做不了架构师&#xff1f;>>> 前言 最近比较闲&#xff0c;复习搭建一下项目&#xff0c;这次主要使用SpringSpringMVCMybatis。项目持久层使用Mybatis3&#xff0c;控制层使用SpringMVC4.1&#xff0c;使用Spring4.1管理控制器&#xff0c;数据库…

IOS 代码块

1.关系式表示 <returnType>(^BlockName)(list of arguments)^(arguments){body;}; 转载于:https://www.cnblogs.com/keithmoring/p/4077686.html

web前端url传递值 js加密解密

一&#xff1a;Js的Url中传递中文参数乱码问题&#xff0c;重点&#xff1a;encodeURI编码&#xff0c;decodeURI解码&#xff1a; 1.传参页面Javascript代码&#xff1a; <script type”text/javascript”>// <![CDATA[ function send(){ var url "test01.html…

Linux下最简单的修改文件名后缀的命令行技巧

在linux上面一直没有找到好的修改文件的方法&#xff0c;今天找到了一个 mv file.{cpp,c} 上面的意思就是说把文件file结尾为cpp改成c文件格式 看下图 &#xfeff;&#xfeff;

python123可以复制粘贴吗_使用win32com和python复制和粘贴隔离

有没有办法使用python和win32com进行复制和粘贴,以便python脚本可以在后台运行而不会弄乱“用户”复制和粘贴功能&#xff1f; from win32com.client import Dispatch import win32com.client xlApp Dispatch("Excel.Application") xlWb xlApp.Workbooks.Open(file…

mongoDB 高级查询之取模查询$mod

http://hancang2000.i.sohu.com/blog/view/235140698.htm$mod取模运算查询age取模10等于0的数据db.student.find( { age: { $mod : [ 10 , 1 ] } } )举例如下:C1表的数据如下:> db.c1.find(){ "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age…

如何在并发中给 HttpClient 设置不同的超时时间?

咨询区 boot4life为了能够复用 HttpClient 所打开的TCP链接&#xff0c;我不得不让所有的request共享一个单例&#xff0c;但问题来了&#xff0c;如果我简单的在每一次request之前修改 timeout 属性的话&#xff0c;会存在下面两个问题。线程不安全。并发时可能会错用到其他 r…

实时事件日志记录和聚合的平台——Sentry

不管你用什么编程语言&#xff0c;都会面临如何处理错误日志的问题。很多程序员对错误日志放任自流&#xff0c;直到出现故障了才追悔莫及&#xff0c;如果问小编怎么办&#xff0c;我会给你推荐 Sentry&#xff01;什么是Sentry&#xff1f;无论测试如何完善的程序&#xff0c…

如何在html里加入验证码_如何把crc校验加入到对应的程序里?看高手怎么做

我们现在已经搞清楚了crc校验的算法&#xff0c;本文我就向大家具体讲解一下如何把crc校验加入到我们的程序里。1 、crc校验使用原理crc校验在程序中运行的原理主要可以分为以下几步。第一步&#xff1a;主站发送数据前把要发送的数据进行crc校验&#xff0c;将要发送的数据和c…