欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

侯捷面向对象高级编程(二)

发布时间:2023/12/10 编程问答 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 侯捷面向对象高级编程(二) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

侯捷面向对象高级编程(二)

转换函数

  • 转换函数没有返回值,返回值就是double即函数名,不需要自己写
  • 因为转换函数一般不会改变其中内容,所以要加const限定

  • 两条路都可以走,就回产生歧义,报错

  • explict禁止自动转换,于是4无法转转换为Fraction

pointer-like cliasses

  • ->作用之后还能继续作用不会消耗掉
  • *sp中的*作用于sp上后返回*px,而->作用后不会消失

function-like classes,仿函数

namespace 命名空间

放在不同命名空间,让彼此没有关联

class template

function template

member template

即使T1,T2确定了,U1,U2也可以变

可以嵌套,但是p.first必须能给first赋值,即U1,U2是T1,T2的子类

再举一个例子,同理

specialization 模板特化

我的理解就是,对不同的类型,采取有不同的行为

partial specialization 模板偏特化

事先绑定一个参数

  • 如果不使用指针就用上面的情况 obj1
  • 如果使用指针就用右下的情况 obj2

数量不定的模板参数

print是递归调用,能打印出全部元素

void print() // 最后一个元素打印时调用 {} template<typename T ,typename... Types> void print(const T& first,const Types&... args) {std::cout << first<<std::endl;print(args...); } int main() {print(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); }

虚函数,虚指针

一种理解:继承中函数继承的是调用权

const

函数后面加const只用于成语函数

COW: copy on write

总结

以上是生活随笔为你收集整理的侯捷面向对象高级编程(二)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。