C++面向对象程序设计-Fourth Week

2017-11-12  本文已影响0人  Letmethinkthink

Knowledge Point:

converion function   // 转换函数

operator double() const {

              return   (double) (m_numerator / m_denominator);

}

有了转换函数,编译器就会将合适的可以转换的数据转成相应的类型,我感觉有点类似于运算符重载。

non-explicit-one-argument ctor

构造函数前+explicit也算是提醒编译器不用帮忙进行隐式转换了。

pointer-like classes

eg: shared_ptr

类实现智能指针,内部封装这一个真正的指针

引用计数,方便内存管理提高安全性

namespace

项目团队合作中为了避免不同成员实现的不同方法,也避免相同命名的情况。

class template 类模板

template<typename T>

class fun{

private: 

     T  temp;

public:

    fun( T t  = 0): temp(t) { }

}

{

fun<int> t1(5);

}

数据类型泛化,没有明确规定,具体运行时才决定具体类型,使用更加方便

function template 函数模板

函数泛化,函数使用更加方便,数据类型返回类型模糊。

specialization 模板特化

将模板具现化,有点个性化设计的感觉,方便程序员编程

partial specialization 模板偏特化

则将模板定义中部分参数特化,更加灵活。

template template parameter 模板模板参数

感觉更像是模板函数的嵌套

variadic templates数量不定的模板参数

1+包的递归


总结:这周内容蛮多,也不太容易理解,只好简单总结一下,之后再慢慢研究

这周作业中也去详细了解了内存对齐机制,对对象分配的大小偏底层的计算机存储方式也有一定的了解,不断学习也在不断收获。

分享一篇内存对齐比较好理解的文章

http://blog.csdn.net/hairetz/article/details/4084088

上一篇下一篇

猜你喜欢

热点阅读