• nemo's blog

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

    post by idnemo / 2008-3-16 21:59 Sunday

    这篇小文开始进入C++的面向对象的编程。OOP三大特性是:封装、继承和多态。其实更精确的说法是:基于对象的编程风格:类的封装性。面向对象的编程风格:继承性和多态性。

    声明类之后就可以使用类指针和作为虚参的数据类型。
    public可在程序任何地方取用,private只能在成员函数或类友元中取用。如果类对象或其引用在成员函数(比如拷贝构造函数)中出现,同样可以取用private成员。但是在类外的类对象是不能取用private成员的。
    类内定义的成员函数自动视为inline。inline函数必须在头文件中定义。
    构造函数和析构函数
    若在构造函数内动态分配内存之后,需在析构函数中释放。
    通常,对象赋值时默认的拷贝构造函数即可使用。但是如果在构造函数中动态分配了内存,那么需自定义拷贝构造函数。并在拷贝构造函数中再次动态分配内存,并对这个新的副本赋值。
    类名::类名(const 类名 &rhs)
    关键字mutable(可变)const(不变).
    在成员函数中标注const,就向编译器表明该成员函数不会更动类对象的内容。const和非const函数也可以用来作为重载函数之间的区别。
    在成员变量上标注mutable,就向编译器表明该成员变量不会更改类对象的常数性,即const函数中可以对mutable变量的值进行变更。
    this指针用来在成员函数中寻址其调用者(整个对象)。
    静态数据成员用来表示一份可共享的成员,可以在这个类型的所有对象中存取。
    在外部使用静态数据成员应该加上class::标识符,因为静态数据成员属于类,而不属于任何对象。
    静态数据成员可在声明时指定初值。
    成员函数只有在不存取任何非静态成员时才能够被声明为static,同样的,静态函数属于类而不属于对象。
    对静态的数据或函数,声明时加上static后,定义时就不需要再重复添加了。
    运算符重载:1、不能引入新的运算符2、运算符操作数不可改变3、运算符优先级不可变4、至少有一个类类型操作数。也就是说不能为内置类型重新定义操作符。
    typedef可以为某个类型设定另一个名字。
    友元函数具有和类成员函数相同的存取权限。
    如果只是操作某个成员,那么友元关系可以用public权限的函数取代。不过在操作点和矩阵等大量运算的函数时,使用友元可以提高效率。
    成员函数指针,相比函数指针,它还要指出函数指针属于哪一个类。调用时需要同类的对象进行调用。
    maximal munch规则:vector <vector<int>>//错误,>>将会被认为合法的运算符
    vector <vector<int> >//正确,有空格

    标签: 游戏开发
    « 我的C++笔记(六) | 我的C++笔记(四)»

    引用地址:

    评论:

    idnemo
    2008-03-21 22:22
    买了啊,上次丢了之后过了2个礼拜又买了一个。
    大伟
    2008-03-20 23:56
    你又买psp没?
    idnemo
    2008-03-20 21:50
    索性DSTT要用的TF卡也一起网购吧,便宜更放心。
    买1GB的足够了,NDS的游戏现在最大才256M。
    fei
    2008-03-20 21:37
    oh no 犯了个错.Integer i 应为BigInteger("1")
    vinci
    2008-03-20 15:11
    俺订购了台,估计这几天就邮过来了,到时候去JS那里配东西~~~DSTT记下了~
    idnemo
    2008-03-19 20:34
    选个烧录卡,推荐DSTT,三免,易使用……
    vinci
    2008-03-19 11:41
    佩服佩服....俺弄个idsl玩,,,,,到时候教教我游戏怎么弄...
    大伟
    2008-03-19 11:37
    两个技术流 加油啊 兄弟们 ,我技术不行啊 郁闷:(
    fei
    2008-03-19 08:31
    嗯.i.add(n) == i+n != i+n 本来就是类Integer的函数.只是JAVA这样的写法呵呵一不注意就被它骗了
    idnemo
    2008-03-18 21:41
    囧
    JAVA里的add是操作符么?感觉像是interger的成员函数
    fei
    2008-03-17 23:09
    操作符重载,
    让我想起了JAVA并没有提供此类功能.在JAVA里.像
    Integer i = 3;
    i.add(2);
    println(i);//maybe you will think is 5,but in fact it's 3
    可恶的...

    发表评论:

  • blogger

      blogger
    • idnemo
    • 目前供职于2k Games,快乐地实现自己梦想,美…… MAIL:shenheshen@163.com Skype:idnemo QQ:64183074
  • 标签

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

  • 随机日志

    • 用PSP完美阅读PDF书籍
    • 欧美新游半月评:2008 7.1-7.15
    • 10月欧美新游综评
    • 租房子……
    • 向着欧洲之巅,迈进!
    • 欧美新游半月评:2008 6.16 - 6.30
    • maria talyor
    • 欧美新游半月评:2008 8.1-8.15
  • 碎语

    • 最新评论

      • Vinci
        哈哈哈,听起来真不错,上古4我刚一出生就迷茫了,不知道该干啥,走走和卫兵打起来了,结果就挂了....
      • 狒狒王
        谢谢,博主,也祝你新年快乐,虎虎生威,吉祥如意!
      • Melody
        我用了上面的方法,还是不成啊.除了一本英文书由20M转换成了4M并成功看到,其它中文书都不成...郁闷的.不停地死机,刷机,够烦.800多页的书正转成TXT
      • idnemo
        多谢徒儿支持
      • 哞哞
        师父,您复活了
      • Tangboke
        文章深入浅出。
      • →龍少爺→
        恭喜也,呵呵
      • 艺术高考
        真牛比
      • Vinci
        。。。游戏bug啊~死神应该掉落一个物品,并且触发任务
      • Vinci
        我的捡起我的ps2玩一玩了~
      • Vinci
        ....在输入框的下边
      • idnemo
        是啊,我也纳闷,摘要在哪里,摘要栏又在哪里?
      • Vinci
        老沈,你的模版文字都变成了粗体,是因为你在这骗文章里插入了[break]么?去看看看,如果是,就把摘要写到摘要栏里即可
      • Vinci
        不错不错
      • 飘过~
        厉害,不愧是学语言的,能举一反三,联想到那么多。。。佩服,我下过PDF的软件试过,看效果不好,一个10M的打开 后 是一张张白纸。。。。。就删掉...
    • 链接

      • emlog
      • 我的豆瓣
    • 存档

      • 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)
    • 搜索

    • 信息

      • 日志数量:72
      • 评论数量:153
      • 引用数量:3
      • 今日访问:29
      • 总访问量:119414
    • 豆瓣

    订阅Rss
    Powered by emlog