• idnemo

  • 致力于游戏开发~~
  • 首页
  • 碎语
  • 登录
  • 我的C++笔记(七)

    post by idnemo / 2008-4-22 13:03 Tuesday

    呃,好久没更新C++了,不过也快更新完了。说实话,我对于泛型编程(GP)也不是很了解,除了用STL之外,自己很少去写模板。模板类的用户,通常是应用程序员。也许对于写底层库的程序员来说,泛型编程才会经常接触吧。

    实现自己的模板(template)
    类模板成员函数的定义语法:
    template <typename elemtype>
    BinaryTree<elemtype>::BinaryTree(const BinaryTree&){}
    //BinaryTree是类名,在前面加了BinaryTree<elemtype>::作用域后,后面的都不需要再加了
    正确编译模板类的方法:
    1、因为模板实例化需要看到模板的定义,而不仅仅是声明。所以模板类的定义全部放在头文件中。这种叫做包含编译模型(见C++PRIMER p543)。
    当然,可以在头文件中的最后包含源文件,这样可使得定义和声明分开。不过工程中就不能添加这个.cpp了,因为这个.cpp编译通不过。其实就是在头文件的最后include进去就可以了。
    2、分开头文件和源文件,在main中包含源文件
    3、使用分别编译模型,export关键字目前VC不支持。
    BinaryTree<elemtype>格式在类模板以及成员的定义式中可以不加,其余情况都需要以BinaryTree<elemtype>的格式来修饰。题外:二叉树前置遍历:先根,后左右。中置遍历:先左,后根,再右。后置遍历:先左右,后根。
    模板机制帮助我们将类定义式中“与类型相依”和“独立于类型之外”的两部分分开来。
    传递模板参数列表,产生特定类型的类模板。只有在类模板及其成员的定义时,不需传递模板参数。
    使用模板类型作为函数参数时,最好使用const reference的方式传递,这样即便是类类型的参数也能高效的传递。
    同样的,使用模板类型的构造函数中,也应该尽可能在成员初始化列表里为每个类型参数进行初始化工作。因为如果是内置类型,就没有什么差别。但是如果是自定义类型,在成员初始化列表里进行初始化,就会更加高效。
    指针引用:int *& i;不但可以改变指针本身,也可以改变指针所指向的对象。
    模板参数不一定非得是某种类型不可,也可以用常量表达式作为模板参数。
    成员模板函数,可以在类内的定义成员模板函数,使得这个函数支持不同的类型,而不需要去管该类是模板类还是非模板类。

    标签: 游戏开发
    « 丑陋的中国人 | 喷神james»

    引用地址:

    发表评论:

  • blogger

      blogger
    • idnemo
    • 目前供职于2k Games,Take-Two的子公司。非常荣幸为这样的公司工作。 MAIL:shenheshen@163.com QQ:64183074 MSN:idnemo@hotmail.com
  • 标签

    • 游戏 牢骚 音乐 电影 游戏开发 足球
  • 日历

  • 随机日志

    • 我的C++笔记(七)
    • 做一名游戏程序员,你准备好了吗?
    • select模型:妓女和嫖客的故事(一)
    • 我的C++笔记(八)
    • 欧美新游半月评:2008 7.16-7.31
    • 那些转瞬即逝、擦肩而过的美
    • 新开BLOG
    • 森海塞尔的MX550和PX100
  • 最新碎语

    • The submarines的 vote,好听!

      2008-11-02 07:42

    • 换了背景音乐

      2008-08-10 05:15

    • 欧洲杯,只有周末能看了

      2008-06-18 13:31

    • 悼念死者。

      2008-05-18 11:48

    • 弄了个Skype,可以用本本和PSP打电话了

      2008-05-10 06:01

    • 更多»

  • 最新评论

    • 丁字裤
      强人呀!
    • 淘宝网批发
      武汉挺好的,哈哈
    • 最好的减肥药
      还没看
    • Wikipedia YouTube
      A Ss was incredible? http://en.wikipedia.org/wiki/Youtube - Wikipedia YouTube <a href="http://en.wikipedia.org/wiki/Youtube">Wikipedia YouTube</a>
    • 美国优洛
      看了,还可以
    • 农民
      “Get a Room.”让我想起那年夏天,在中山,牵着女朋友每到一处都说没房。
    • 西安seo
      武汉没去过,相比于深圳如何呢?
    • zuoteng
      遇到你碰巧是我人生中最诡异的一段时间。
    • 白衣大葛格
      好有深度啊。。。唉。我俗人。。。
    • acboy
      i like it
    • 宝鸡seo
      造型实在令人失望!
    • idnemo
      靠,被垃圾评论淹没了
    • idnemo
      靠。
    • 小 .xin
      强势插入!留痕~~~
    • vinci
      帅啊!
  • 链接

    • emlog
    • 我的豆瓣
  • 存档

    • 2010年7月(1)
    • 2010年6月(1)
    • 2010年5月(1)
    • 2010年4月(3)
    • 2010年3月(1)
    • 2010年2月(3)
    • 2009年11月(1)
    • 2009年10月(1)
    • 2009年9月(3)
    • 2009年8月(1)
    • 2009年4月(1)
    • 2009年3月(1)
    • 2009年2月(2)
    • 2009年1月(1)
    • 2008年12月(1)
    • 2008年11月(1)
    • 2008年10月(2)
    • 2008年9月(1)
    • 2008年8月(4)
    • 2008年7月(2)
    • 2008年6月(4)
    • 2008年5月(5)
    • 2008年4月(4)
    • 2008年3月(4)
    • 2008年2月(4)
    • 2008年1月(4)
    • 2007年12月(5)
    • 2007年11月(5)
    • 2007年10月(5)
    • 2007年9月(7)
  • 搜索

  • 信息

    • 日志数量:79
    • 评论数量:172
    • 引用数量:3
    • 今日访问:190
    • 总访问量:322657
  • 豆瓣

订阅Rss
Powered by emlog