• 练习6.43:、6.45、6.46


    6.43:你会把下面的哪个声明和定义放在头文件中?哪个放在源文件中?为什么?

    (a)inline bool eq(const BigInt& , const BigInt&) {...}

    (b)void putValues(int *arr , int size);

    Ans:把(a)的声明和定义放在头文件中,把(b)的声明放在头文件,其定义放在源文件。因为(a)是内联函数,应该把声明和定义放在头文件。

    6.45:回顾在前面的练习中你编写的哪些函数,它们应该是内联函数吗?如果是,将它们改写成内联函数;如果不是,说明原因。

    Ans:某些函数要经常调用,并且函数相对简单,就将其定义成内联函数,可以减小函数调用开销。而有些函数相对繁琐,例如递归函数,尽管有的可能要经常调用。

    6.46:能把isshorter函数定义成constexpr函数吗?如果能,把它改写成constexpr函数;如果不能,请说明原因。

    Ans:不能。虽然isshorter函数只有一条return语句,但是其return后面调用了string标准库的size()和>比较运算符,无法构成常量表达式

  • 相关阅读:
    Django中多表的增删改查操作及聚合查询、F、Q查询
    路由控制
    路由、视图、模板主要知识点回顾
    创建文件linux
    关于shell,环境变量放置在?
    snprintf和string操作函数
    C/C++的存储区域的划分
    001
    SAMBA服务器
    归并排序原理详解!
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9489325.html
Copyright © 2020-2023  润新知