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

网站建设入什么科目凤凰军事新闻最新消息

网站建设入什么科目,凤凰军事新闻最新消息,无锡知名网站制作,室内设计和平面设计区别本节书摘来自异步社区出版社《C编程惯用法——高级程序员常用方法和技巧》一书中的第2章,第2.6节,作者: 【美】Robert B. Murray ,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 重载、缺省值以及省略符 C中允许用户…

本节书摘来自异步社区出版社《C++编程惯用法——高级程序员常用方法和技巧》一书中的第2章,第2.6节,作者: 【美】Robert B. Murray ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.6 重载、缺省值以及省略符

C++中允许用户写出这样的代码:使用不同(个数或类型)的参数来调用(似乎是)同一个函数:

f();
f(0);
f(x,y,z);

(当然,这些函数都应该对它们的参数有着同样的抽象行为。)在C++中有三种方法可以这么做:函数重载、使用有缺省值的参数以及使用省略符。对于在同一个函数名中同时使用这三种方法中的多种所出现的结果,C++语言规则有着明确的定义。不过它们比较难以掌握,并且还容易让人觉得惊奇。即使我们能够很好地理解它们,那些维护我们代码的人也可能不一定能够完全掌握它们。对于同一个名字来说,我们应该对它选择一种方案并且一直坚持使用这种方法。

省略符只应该用在类似于printf这样的需要无限(或近似无限)个重载版本的函数中。在使用了省略符的函数中并没有对那些不定参数的类型进行编译期的类型检测,在函数内部我们还必须使用定义于头文件stdarg.h中的充满魔幻色彩的宏[4]来获得那些不定参数。如果函数没有正确获得该参数,那么函数的返回值就将无法确定。

假设我们已经去除了省略符,在使用缺省值和重载之间的选择通常都很容易。使用缺省值可以让我们使用多种不同的方法来同一个函数;使用重载则适用于需要调用不同的函数这种场合之下。

如果这两者之间有一个是另外一个的简化方式,并且同一个实现可以用在这两种场合之下,那么我们最好选择使用带缺省值的方式。例如,我们有一个类String,它的构造函数带有一个const char*的参数,但是我们又希望它有一个缺省的构造函数。为了简便,我们可以使用一个带缺省值的参数:

class String {
//此处忽略细节
public:String (const char* = "");
};String s;  //等同于“string s("");”

当多个事物在概念上相似,但实现形式又不一致时,我们应该选择使用重载:

void print(const Data&);
void print(const Location&);
void print(const Employee&);

上面三个print在概念上来说是一样的,但它们的实现方法不一样,所以我们必须对它们使用重载。

2.6.1 缺省的指针和引用参数

当我们为指针参数提供缺省值时,下面这个小的语法陷阱就很容易出现:

void f(const char*="");

编译器会将=当作一个单独的token来处理,这样就将造成一个语法错误。我们应该在后面增加一个空格:

void f(const char*="");

对于有着缺省值的引用对象来说,编译器也是同样处理的:

const String empty;
void f(const String& = empty);   //语法错误
void f(const String& = empty);   //OK
http://www.lbrq.cn/news/2595367.html

相关文章:

  • 做微信公众平台的网站吗英文seo推广
  • 南京师范大学课程建设网站什么是网站外链
  • 怎么看一个网站有没有做301爱站工具包怎么使用
  • 桂林网站建设桂林seo是什么牌子
  • 商丘集团网站建设seo是什么专业的课程
  • 如何攻击php网站seo优化网
  • 58网站建设的目的seo怎么发文章 seo发布工具
  • 亿网正品windows优化大师是官方的吗
  • 关于做真实的自己视频网站销售
  • 医院网站建设作用大数据精准营销系统
  • 校友会网站建设搜图片百度识图
  • 佛山有什么网站韩国日本比分
  • 什么网站可以做海报开网店3个月来亏了10万
  • 美术培训学校网站模板微信引流获客软件
  • 大网站建设上海牛巨微seo优化
  • 做网站信科网站建设seo优化的优点
  • 计算机网站开发的目的苏州seo关键词优化方法
  • 做淘宝代码的网站网上如何推广自己的产品
  • 简述企业网络建设的步骤深圳seo推广
  • 重庆江北区网站建设公司seo的优化方向
  • 用scala做的网站百度指数关键词未收录怎么办
  • 新乡网站设计软文营销文章300字
  • 网站怎么投放广告网页开发工具
  • 永久免费手机网站建设的好处sem和seo是什么职业
  • 装饰网站建设公司网络宣传怎么做
  • 自建虚拟主机网站源码营销qq
  • 网站建设论文附录怎么写快速排名工具免费
  • 网站怎样做 文件签收网站seo的内容是什么
  • 破解网站后台密码有人做吗百度开户代理
  • 建网站哪家好行业现状seo网站建设
  • 2.4 组件通信
  • 深入浅出 RabbitMQ:工作队列实战(轮训策略VS公平策略)
  • 深度学习TR3周:Pytorch复现Transformer
  • 【深度学习新浪潮】近三年零样本图像分类研发进展调研
  • 开源的现代数据探索和可视化平台:Apache Superset 快速指南 Quickstart
  • RSA 解密逻辑