您好!欢迎来到源码码网

C++ Primer Plus 随记7

  • 源码教程
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-05-13 16:29
  • 阅读:571

1.在包含自己的头文件时,应用“ ”而不是< >,如“coordin.h”;  文件名在“ ”中,编译器将先在当前工作目录或源代码目录中查找。


  <iostream>, < >表示C++编译器将在存储标准头文件的主机系统的文件系统中查找。


2. 同一个文件中只能将同一个头文件包含1次


  #ifndef  COORDIN_H_


 #define COORDIN_H_


....


#endif


3、自动存储持续性:(自动变量)在函数定义中声明的变量(包含函数参数)的存储持续性为自动的,它们在程序开始执行其所属的函数或代码块时被创建,执行完函数或代码块时,它们使用的内存被释放。自动变量它们占的内存称为栈,内存释放后,值没有被删除,但不在被标记,栈顶恢复到原来的位置。(代码块是指花括号{ }内包含的语句)


静态存储持续性:(静态变量)在函数定义外定义的变量和使用关键字static定义的变量的存储持续性为静态的,在程序的整个运行过程中都存在。编译器将分配固定的内存来存储静态变量。


动态存储持续性:(动态变量)用new运算符分配的内存一直都在,直到用delete运算符将其释放或程序结束,这种存储持续性为动态的,有时称为自由存储或堆。


4、C++变量的作用域有多种,


  C++函数的作用域可以是整个类或整个名词空间(包括全局),但不能是局部(不能再代码块内定义函数)。


5. int main()


{


int  tel;  ...... //tel #1


{ int  tel;.....  } //tel #2,  在这可{ }代码块中tel #1被隐藏不可见,执行完该代码块后tel #1重新可见。


}


6. 关键字register:建议编译器用CPU寄存器来存储自动变量。


7.静态持续变量的3种链接性 


int global=1000;  //global在代码块外声明,有外部链接性,程序的其他文件可使用global;


  static int one_file=50l; //one_file在代码块外声明,并用static限定符,有内部链接性,只能在包含上述代码的文件中使用one_file


int main() { ...}


void fun1 (int n){


static int count=0;   //count在代码块内声明,并用static限定符,无链接性


int lama=0; //静态变量count和自动变量类似,只能在fun1 ()函数中使用。不同的是即使fun1 ()函数没有执行count也占内存


}


void fun2 (int q){ ....}


8.未被初始化的静态变量的所有位都被设置为0;


静态变量的初始化分为:静态初始化 和动态初始化。静态初始化(零初始化和常量表达式初始化)


静态初始化:编译后初始化 const double pi=4.0*atan(1.0); 


9. 链接性为外部的变量称为外部变量。外部变量可以被程序中的多个文件使用,但每个使用外部变量的文件都要声明;但变量只能定义1次。因此有C++的两种声明:


定义声明:(定义)给变量分配存储空间


引用声明:(声明)不分配存储空间,使用关键字extern,不初始化,如果初始化了变为定义,分配存储空间


extern int blem;  //声明,blem在其他地方定义


extern char gr='z'; // 定义gr,分配存储空间    double up; //定义up


10. 用const全局变量链接性为内部的。但可以用extern关键字来覆盖默认的内部链接性。


extern const int state=34; //有外部链接性


11.所有函数的存储持续性都是静态的,默认情况下,函数的链接性都是外部的。可以用extern(也可不用)指出函数在另一个文件中定义,还可以用static将函数链接性设置为内部,使之只能在一个文件中使用。


12. 使用new初始化: int * ar=new int[4] {2,6,7,3} ;


 用new和new[] 调用函数:


void * operator new(std::size_t) ; //size_t是一个typedef,对应于合适的整型。 释放函数:void operator delete(void *)


void * operator new[] (std::size_t) ; 释放函数:void operator delete [] (void *)


定位new运算符:


char buffer[500];


p1=new (buffer) int[20] ;// 将Int数组放置在buffer。


此时不需要delete [] p1; 因为buffer处于delte管辖之外。


13.创建名称空间的关键词 namespace, 任何名称空间中的名称不会与其他名称空间的名称冲突(不同名称空间可以用相同的名称)


namespace Jack{ double pail; void fetch(); int pal; } 


访问名称空间的名称用作用域解析运算符 ::  如Jack::pail=12.34;  包含名称空间的名称Jack::pail称为限定名称


14.using声明使特定的标识符可用: using Jack::fetch;  完成该声明后,在有效区域可用fetch代替Jack::fetch


using编译指令使整个名称空间可用:using namespace Jack;名称空间所有名称都可用,不用作用域解析运算符 :: 


15.未命名的名称空间可替代链接性为内部的静态变量:


函数外声明:static int counts;


可写为函数外声明 : namespace     { int counts; }


16.一个文件中调用average(3,6)函数,返回两个int参数的int平均值,在同一个程序的另一个文件中调用,它返回返回两个int参数的double平均值,实现方法:


在每个文件中包含单独的静态函数定义,或每个文件在未命名的名称空间(上面的15)中定义一个合适的average()函数


   

————————————————


原文链接:https://blog.csdn.net/lvliang2017232003/java/article/details/85990362


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 常用测试压力工具使用介绍
  • 常用测试压力工具使用介绍
  • ab 是 ApacheBench 工具的缩写,它是一个HTTP压力测试工具。让我详细说明如何测试:1. 安装ApacheBenchWindows系统:方法一:安装XAMPP或WAMP(自带ab)下载地址:https://www.apachefriends.org/zh_cn/index.html安装后,ab工具在:C:xamppapacheinab.exe方法二:使
  • 开发工具
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-13 20:27
  • 阅读:61
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:169
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:162
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:68
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:96
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部