码迷,mamicode.com
首页 > 编程语言 > 详细

C++面向对象高级编程(上) 第二周笔记 GeekBand

时间:2016-05-15 16:33:56      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

static:

        (1)static成员数据:例如像银行IT系统中的利率,并不是每个用户拥有一份,而是所有账户都有统一的利率,可以加static,表明所有账户共有相同利率。

        static成员数据要在class外定义。

            例:class Account{

                          public:

                                    static double m_rate;

                                    static void set_rate(const double& x){m_rate=x;}

                  }

                  double Account::m_rate=8.0; 

        (2)static成员函数:没有this pointer。只能处理static类型的成员数据。

            调用static函数的方式:

            a.通过object调用,和普通成员函数一样。例如;

                    Account a;

                    a.set_rate(7.0);

            b.通过class name调用,例如:

                     Account::set_rate(5.0);

 

单例模式:

      class A{

                 public:

                 static A& getInstance(){return a;};

                 setup(){...}

                 private:

                 A();

                 static A a;

       }

调用函数setup方式:A::getInstance().setup();

缺点:如果没有用到类A的唯一对象a,由于a在创建类是就存在并一直存在,将造成内存空间的浪费。

更好的写法:

      

 class A{

                 public:

                 static A& getInstance();

                 setup(){...}

                 private:

                 A();

       }

  A& A::getInstance(){

       static A a;

       return a;

}

调用函数setup方式:A::getInstance().setup();

调用getInstance后a一直存在。

 

namespace:

           (1)using namespace std;

               cout<<...

               cin>>...

           (2)using std::cout;

               cout<<...

           (2)std::cout<<... 

      

C++面向对象高级编程(上) 第二周笔记 GeekBand

标签:

原文地址:http://www.cnblogs.com/zhanghouyu/p/5495359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!