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

谷歌网站收录提交lnmp中安装wordpress

谷歌网站收录提交,lnmp中安装wordpress,外贸流程和专业知识点,seo推广内容由C语言发展而来的一种面向对象的编程语言。 第一部分、从C语言到C 本章讲述 C 语言的简史,以及 C 语言中与面向对象关系不大、C语言中没有的特性。这些特性能够增加编程的便利性,提高程序的可扩充性。 十三、如何规范地使用C内联函数 inline 关键字…

由C语言发展而来的一种面向对象的编程语言。

第一部分、从C语言到C++

本章讲述 C++ 语言的简史,以及 C++ 语言中与面向对象关系不大、C语言中没有的特性。这些特性能够增加编程的便利性,提高程序的可扩充性。

十三、如何规范地使用C++内联函数

inline 关键字可以只在函数定义处添加,也可以只在函数声明处添加,也可以同时添加;但是在函数声明处添加 inline 关键字是无效的,编译器会忽略函数声明处的 inline 关键字。也就是说,inline 是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。

尽管大多数教科书中在函数声明和函数定义处都增加了 inline 关键字,但我认为 inline 关键字不应该出现在函数声明处。这个细节虽然不会影响函数的功能,但是体现了高质量 C++ 程序设计风格的一个基本原则:声明与定义不可混为一谈,用户没有必要、也不应该知道函数是否需要内联。

更为严格地说,内联函数不应该有声明,应该将函数定义放在本应该出现函数声明的地方,这是一种良好的编程风格。

在多文件编程中,我们通常将函数的定义放在源文件中,将函数的声明放在头文件中,希望调用函数时,引入对应的头文件即可,我们鼓励这种将函数定义和函数声明分开的做法。但这种做法不适用于内联函数,将内联函数的声明和定义分散到不同的文件中会出错,请看下面的例子。

main.cpp 代码:

#include <iostream>
using namespace std;//内联函数声明
void func();int main(){func();return 0;
}

module.cpp 代码:

#include <iostream>
using namespace std;//内联函数定义
inline void func(){cout<<"inline function"<<endl;
}

上面的代码能够正常编译,但在链接时会出错。func() 是内联函数,编译期间会用它来替换函数调用处,编译完成后函数就不存在了,链接器在将多个目标文件(.o.obj文件)合并成一个可执行文件时找不到 func() 函数的定义,所以会产生链接错误。

内联函数虽然叫做函数,在定义和声明的语法上也和普通函数一样,但它已经失去了函数的本质。函数是一段可以重复使用的代码,它位于虚拟地址空间中的代码区,也占用可执行文件的体积,而内联函数的代码在编译后就被消除了,不存在于虚拟地址空间中,没法重复使用。

如果你对虚拟地址空间或代码区的概念不了解,请阅读 《C语言内存精讲》专题。

内联函数看起来简单,但是有很多细节需要注意,从代码重复利用的角度讲,内联函数已经不再是函数了。我认为将内联函数作为带参宏的替代方案更为靠谱,而不是真的当做函数使用。

在多文件编程时,我建议将内联函数的定义直接放在头文件中,并且禁用内联函数的声明(声明是多此一举)。


十四、C++函数的默认参数详解

在C++ 中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。

所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。下面是一个简单的示例:

#include<iostream>
using namespace std;//带默认参数的函数
void func(int n, float b=1.2, char c='@'){cout<<n<<", "<<b<<", "<<c<<endl;
}int main(){//为所有参数传值func(10, 3.5, '#');//为n、b传值,相当于调用func(20, 9.8, '@')func(20, 9.8);//只为n传值,相当于调用func(30, 1.2, '@')func(30);return 0;
}

运行结果:
10, 3.5, #
20, 9.8, @
30, 1.2, @

本例定义了一个带有默认参数的函数 func(),并在 main() 函数中进行了不同形式的调用。为参数指定默认值非常简单,直接在形参列表中赋值即可,与定义普通变量的形式类似。

指定了默认参数后,调用函数时就可以省略对应的实参了。

默认参数除了使用数值常量指定,也可以使用表达式指定,例如:

float d = 10.8;

void func(int n, float b=d+2.9, char c='@'){

        cout<<n<<", "<<b<<", "<<c<<endl;

}

C++规定,默认参数只能放在形参列表的最后,而且一旦为某个形参指定了默认值,那么它后面的所有形参都必须有默认值。实参和形参的传值是从左到右依次匹配的,默认参数的连续性是保证正确传参的前提。

下面的写法是正确的:

void func(int a, int b=10, int c=20){ }

void func(int a, int b, int c=20){ }

但这样写不可以:

void func(int a, int b=10, int c=20, int d){ }

void func(int a, int b=10, int c, int d=20){ }

默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式。在以后设计类时你将发现,通过使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。

本节的例子中,我们在函数定义处指定了默认参数。除了函数定义,你也可以在函数声明处指定默认参数。不过当出现函数声明时情况会变得稍微复杂,很多书籍也对这点含糊其辞,我们将在下节《十五、到底在声明中还是定义中指定默认参数》中详细讲解。

http://www.15wanjia.com/news/173216.html

相关文章:

  • seo网站推广服务重庆模板建站软件
  • 郑州网站改版升级无锡手机网站
  • 网站建设那家好wordpress菜单页面顺序
  • 网站跳出率怎么计算做网站的域名是做什么用的
  • 建设网站平台需要的设备网站维护价格
  • 网站接入lnmp和wordpress
  • 电子商务网站设计代码钓鱼网页在线生成网站
  • 静态wordpress电影网站怎么做优化
  • 如何查看一个网站做的外链h5免费建站
  • 有哪些做的好的网站做微商什么是官方网站
  • 网站搭建网站制作拼多多采用了哪些网络营销方式
  • 做网站备案需要哪些材料青岛建设网站公司
  • 网站建设职位要求免费proxy服务器地址
  • 网络软文广告搜网站首页不见了seo
  • 阎良做网站极度简单wordpress主题
  • 茂名市城乡和住房建设局网站百度公司介绍
  • 团风做网站购物网站后台订单处理流程
  • 超级大气的一款工作室网站制作网络科技公司站点源码直接可用wordpress白色简约
  • 社交信息共享网站开发外包无极电影网
  • 大众团购网站怎么做毕业设计网页
  • 网站开发与维护的内容东莞建筑公司前十强
  • 网站快速设计wordpress代码恢复旧编辑器
  • 网站改版降权设计做兼职最好的网站
  • 怎样查网站备案人的联系方式开发公司预算员工作内容及职责
  • 网站开发合同要注意哪些2023年不用做核酸了吗
  • 卖狗做网站什么关键词最好wordpress百度地图
  • 建筑设计师专业网站越秀网站建设设计
  • 设计师学编程能自己做网站吗网站设计公司域名服务器建设
  • 网站群 建设 方案电商网站网址大全
  • 网站建设市场价格网架公司联系方式