当前位置: 首页 > news >正文

asp装饰公司网站源码大浪网站建设 优帮云

asp装饰公司网站源码,大浪网站建设 优帮云,四川省城乡住房建设厅网站,网页设计制作论文目录 1. 命名空间 1.1 使用命名空间的目的 1.2 命名空间定义 1.3 命名空间使用 2. 缺省参数 2.1 缺省参数概念 2.2 缺省参数分类 2.3 实际案例 2.4 注意事项 3. 函数重载 3.1 函数重载概念 3.2 函数重载原理 4. 引用 4.1 引用的概念 4.2 引用的特性 4.3 使用…目录 1. 命名空间 1.1 使用命名空间的目的 1.2 命名空间定义  1.3 命名空间使用 2. 缺省参数 2.1 缺省参数概念 2.2 缺省参数分类 2.3 实际案例 2.4 注意事项  3. 函数重载 3.1 函数重载概念 3.2 函数重载原理  4. 引用 4.1 引用的概念 4.2 引用的特性 4.3 使用场景 4.4 常引用(权限变化)  4.5 引用和指针的区别  5. 内联函数 5.1 概念 5.2 特性  5.3 面试题 6. auto 7. 范围for 8. nullptr 1. 命名空间 1.1 使用命名空间的目的 在C/C中变量、函数和类都是大量存在的这些变量、函数和类的名称将都存在于全局作用域中可能会导致很多重名冲突。使用命名空间的目的是对标识符的名称进行本地化以避免命名冲突或名字污染。 #include stdio.h #include stdlib.hint rand 10;int main() {printf(%d\n, rand);return 0; } 在C语言中这个整型变量rand和函数rand()名字冲突了只能其中一个改名字。 1.2 命名空间定义  定义命名空间需要使用到namespace关键字后面跟命名空间的名字然后接一对{}即可{} 中即为命名空间的成员。 1. 命名空间中可以定义变量/函数/类型 namespace lyh {int rand 10;int Add(int left, int right){return left right;}struct Node{struct Node* next;int val;}; } 使用方法 结构体类型的使用需要特别记忆一下。 int main() {printf(%d\n, lyh::rand);printf(%d\n, lyh::Add(1, 2));struct lyh::Node node;return 0; } 2. 命名空间可以嵌套 namespace N1 {int a;int b;int Add(int left, int right){return left right;}namespace N2{int c;int d;int Sub(int left, int right){return left - right;}} }3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。 4. 一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中。 1.3 命名空间使用 namespace lyh {int a;int b; } 1. 不展开都要加命名空间名称及作用域限定符。 int main() {printf(%d\n, lyh::a);printf(%d\n, lyh::b);return 0; } 2. 部分展开展开的不用加命名空间名称及作用域限定符。 using lyh::b;int main() {printf(%d\n, lyh::a);printf(%d\n, b);return 0; } 3. 全展开都不用加命名空间名称及作用域限定符。 using namespace lyh;int main() {printf(%d\n, a);printf(%d\n, b);return 0; } 2. 缺省参数 2.1 缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个默认值。 在调用该函数时如果没有指定实参则采用该形参的默认值否则使用指定的实参。 void Func(int a 0) {coutaendl; }int main() {Func(); // 没有传参时使用参数的默认值a0Func(10); // 传参时使用指定的实参a10return 0; }2.2 缺省参数分类 1. 全缺省参数 void Func(int a 10, int b 20, int c 30){couta aendl;coutb bendl;coutc cendl;}int main() {Func();//只能从左往右显示传参。Func(1);Func(1, 2);Func(1, 2, 3);return 0; } 2. 半缺省参数 部分参数缺省缺省参数必须从右往左给出。 void Func(int a, int b 10, int c 20){couta aendl;coutb bendl;coutc cendl;}int main() {Func(1);Func(1, 2);Func(1, 2, 3);return 0; } 2.3 实际案例 假如有一个场景要你开空间这里分为两种情况1.你知道开多少2.你不知道开多少这里就可以使用缺省参数。 再开空间之前你需要传入一个关于空间大小的参数给空间大小参数一个默认值你知道你就传你不知道就用默认的。  2.4 注意事项  1. 缺省参数不能在函数声明和定义中同时出现。规定声明给即可。 //a.hvoid Func(int a 10);// a.cppvoid Func(int a 20){}// 注意如果声明与定义都有缺省值恰巧两个缺省值不同那编译器就无法确定到底该用那个缺省值。 2. 缺省值必须是常量或者全局变量。 3. C语言不支持缺省参数(编译器不支持)。 3. 函数重载 3.1 函数重载概念 C允许在同一作用域中声明几个功能类似的同名函数这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同常用来处理实现功能类似数据类型不同的问题。 1. 参数类型不同 int Add(int left, int right) {return left right; }double Add(double left, double right) {return left right; } 2. 参数个数不同 void f(int a) {... }void f(int a, int b) {... }3. 参数类型顺序不同 void f(int a, char b) {... }void f(char a, int b) {... } 3.2 函数重载原理  1. 一个程序要运行起来需要经历以下几个阶段预处理、编译、汇编、链接。 2. 编译进行了符号汇总汇编形成符号表链接进行了符号表的合并与重定位。 3. C不像C语言直接把函数名当作符号而是将函数名修饰后才变成符号。 4. 通过这里就理解了C语言没办法支持重载因为同名函数没办法区分。而C是通过函数修饰规则来区分只要参数不同修饰出来的名字就不一样就支持了重载。 4. 引用 4.1 引用的概念 1. 引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空间它和它引用的变量共用同一块内存空间。 2. 类型 引用变量名(对象名) 引用实体。 void Test() {int a 10;int ra a; } 3. 引用类型必须和引用实体是同种类型的。 4.2 引用的特性 1. 引用在定义时必须初始化。 2. 一个变量可以有多个引用。也可以对引用进行引用。 3. 引用一旦引用了一个实体就不能引用其他实体。 void Test() {int a 10;int ra; //没有初始化int ra a;int rra ra; //可以对引用进行引用 int x 1;ra x; //这里是赋值 } 4.3 使用场景 1. 做参数 void Swap(int left, int right) {int temp left;left right;right temp; } 2. 做返回值 注意如果函数返回时出了函数作用域如果返回对象还在(还没还给系统)则可以使用 引用返回如果已经还给系统了则必须使用传值返回。 4.4 常引用(权限变化)  1. 在引用的过程中权限可以平移缩小但不能放大。 void Test() {const int a 10;int ra a; //这是权限放大不行。int b a; //这是赋值可以。const int ra a; //这是权限平移。int x 10;const int rx x; //这是权限缩小。 } 2. 临时变量具有常性。 void test() {int i 12double d i;double rd i; //这句会出错。 const double rd i; } 因为这里会进行类型转换将i拷贝给类型为double的临时变量此时是对临时变量起别名。 func结束后返回值会拷贝给一个临时变量对临时变量起别名要注意常性。 4.5 引用和指针的区别  在语法概念上引用就是一个别名没有独立空间和其引用实体共用同一块空间。 在底层实现上实际是有空间的因为引用是按照指针方式来实现的。 他们的汇编代码是一样的。 引用和指针的不同点: 1. 引用概念上定义一个变量的别名指针存储一个变量地址。 2. 引用在定义时必须初始化指针没有要求。 3. 引用在初始化时引用一个实体后就不能再引用其他实体而指针可以在任何时候指向任何一个同类型实体。 4. 没有NULL引用但有NULL指针。 5. 在sizeof中含义不同引用结果为引用类型的大小但指针始终是地址空间所占字节个数 6. 引用自加即引用的实体增加1指针自加即指针向后偏移一个类型的大小。 7. 有多级指针但是没有多级引用。 8. 访问实体方式不同指针需要显式解引用引用编译器自己处理。 9. 引用比指针使用起来相对更安全。 5. 内联函数 5.1 概念 以inline修饰的函数叫做内联函数编译时C编译器会在调用内联函数的地方展开没有函数调用建立栈帧的开销内联函数提升程序运行的效率。 如果在上述函数前增加inline关键字将其改成内联函数在编译期间编译器会用函数体替换函数的调用。 5.2 特性  1. inline是一种以空间换时间的做法如果编译器将函数当成内联函数处理在编译阶段会 用函数体替换函数调用。 缺陷可能会使目标文件变大。 优势少了调用开销提高程序运行效率。 2. inline对于编译器而言只是一个建议不同编译器关于inline实现机制可能不同一般建 议将函数规模较小、不是递归、且频繁调用的函数采用inline修饰否则编译器会忽略inline特性。 3. 内联说明只是向编译器发出一个请求编译器可以选择忽略这个请求。 4. inline不能声明和定义分离分离会导致链接错误。因为inline被展开就没有函数地址 了链接就会找不到。 5.3 面试题 宏的优缺点 优点 1.没有类型限制。 2.针对频繁调用的小函数不用建立栈帧。 缺点 1.不能调试宏(因为预编译阶段进行了替换) 。2.容易出错。 3.没有类型安全的检查 。 C有哪些技术替代宏 1. 常量定义 换用const enum。 2. 短小函数定义 换用内联函数。 6. auto 根据右边自动推导左边的类型。 int main() {int a 1;auto b a;auto c a;cout typeid(b).name() endl;cout typeid(c).name() endl;cout typeid(d).name() endl; } typeid可以查看变量的类型。  auto不能推导的场景 1. auto不能作为函数的参数。 2. auto不能直接用来声明数组。 7. 范围for void Test() {int array[] { 1, 2, 3, 4, 5 };for (int* p array; p array sizeof(array)/ sizeof(array[0]); p){cout *p endl;}for(auto e : array){cout e ;}cout endl; } 依次取数组中的数据赋值给e。 自动判断结束。 自动迭代。 8. nullptr #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif在C中NULL被定义为0。所以要表示空指针就使用nullptr。 1. 在使用nullptr表示指针空值时不需要包含头文件因为nullptr是C11作为新关键字引入 的。 2. 在C11中sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同。 林宇恒/code-cpp (gitee.com)
http://www.dnsts.com.cn/news/174879.html

相关文章:

  • 福州服务专业公司网站建设wordpress背景颜色
  • 长沙门户网站有哪些传奇开服表
  • 网站开发有哪些术语3d室内设计软件
  • 网站开发专业前景怎么自己开发软件
  • 用网站做淘宝客的人多吗做自媒体视频搬运网站
  • 网站外的seowordpress 自适应 主题
  • 青岛开发网站wordpress是cms
  • 网站设计的工作内容网站视频超链接怎么做
  • 义乌设计网站网上竞价采购网站建设
  • 做网站用什么技术好十句经典广告语
  • 陕西建设集团招聘信息网站苏州关键词优化seo
  • 做婚礼邀请函网站柚段子wordpress文章
  • 纯ajax网站如何做seo论述题亿唐网不做网站做品牌
  • 网上做造价网站wordpress旅游网模板
  • 系统下载网站建设模板南宁百度推广代理商
  • 建设嘉陵摩托车官方网站专业建筑公司网站
  • 怎么对网站做seo优化建教会网站的内容
  • 网站 二维码的作用钟祥网站建设
  • 做360pc网站排名首页裤子seo标题优化关键词
  • 茶楼网站源码贵阳小程序定制公司
  • 快速提高网站权重网站互动推广
  • 二维码设计软件seo优化是指
  • 怎样给网站做优化欧美网站建设公司
  • 做淘宝返利网站能挣钱网站空间续费合同
  • html5网站建设网站建设要用到哪些应用工具
  • 钱包钱夹移动网站建设有域名怎么发布网站吗
  • 网站开发前端库重庆市建设节能中心网站
  • 设计构建网站竞价排名广告
  • 网站 租用服务器价格网页设计图片大小如何调整
  • ppp项目建设交易网站石家庄市网站制作