由于最近在上项目吧,时间比较紧张,所以也就没有太多时间来及时更新博客了。但是我会吧c++学习笔记系列给写下去。 说实在话,我也在考虑该如何写这个话题?原因是c++太大了,包含的东西太广太深,随便一个知识点都足够让人折腾一阵子了,然而这些知识都是可以在网上搜索到的。所以我决定换一种方式以问答的形式来体现。这些问题是我在学c++中遇到也包括别人在博客或者学习群中提到的。
首先介绍一个朋友Baleno.cui。此仁兄c++功夫十分了得,有深厚的c++开发经验,对c++研究的很透彻。感谢他在本人学习c++的过程中给予我的无私的帮助,真的是良师益友。以下我以老崔相称。最后希望大家留言交流,遇到问题也可以给我发邮件。virgree@126.com
给出一个函数,测试一下你是否看懂?
template<typename T1,typename T2,typename T3,typename T4>
void ProcessList(T1 (T2::*f)(const T4*),T3& pobj,const T4* const * plist)
{
if (plist && f)
{
const T4** p = const_cast<const T4**>(plist);
while (*p)
{
(pobj.*f)(*p);
++p;
}
}
};
这个函数是老崔发的,当时看懂的人紧紧是聊聊无几。解释一下:
函数功能:用二维数组填充流数据
具体参数:T1是成员函数原型的返回值,
T2::*f表示成员函数指针,整个T1 (T2::*f)(const T4*)描述了一个成员函数原型,返回值为T1类型,类为T2,参数类型为T4。 T3是对象实例表示要调用的具体对象类型,可以和T2是一个类型也可以是T2的子类等,
T4是二维数组列表。
如果你能看懂,说明你c++水平非常可以了,就是看不懂也没有关系了,通过学习你也可以看到懂的,在此仅仅也做测试用
这篇算是闲扯吧
推荐几本书
<c++ primer>,本人觉的此书内容比较全面。几乎涵盖了c++的方方面面。
<The C++ Standard Library>,此书是对c++标准库的详细讲解,也有中文版不过我读的时候感觉不适应。所以我看的是E文
<Effective C++>里面的编程经验很值的我们借鉴
<c++ template>这本书相当不错,讲述了template语言机制的细节,以及template高级编程的技法。但是有一点的难度