C ++类变量可访问的静态变量

时间:2014-04-25 05:22:23

标签: c++

请查看以下代码:

#include<string>
class abc
{
  public:
    static const abc PENDING;
  private:
    static const string PENDING_STATUS_CD;
    abc ( const string& iStatus )
    {
     //...........
     Logintodatabase();
     //.............
     logoutfromdatabase();

    }
};

const string abc::PENDING_STATUS_CD  = "P";
const abc abc::PENDING ( abc::PENDING_STATUS_CD );

一旦const abc abc :: PENDING(abc :: PENDING_STATUS_CD);被调用,它将调用构造函数abc ( const string& iStatus )

实际上,如果在类中定义了多个静态类变量,则每次初始化都会调用构造函数。

这个构造函数负责打开&amp;关闭数据库。
对于每个静态变量初始化,数据库将打开&amp;关闭。
假设这个类被多个进程使用,那么很多时候数据库将打开&amp;关闭。

你能建议如何克服这个问题吗?

谁能告诉我如何设计这个逻辑?

1 个答案:

答案 0 :(得分:0)

数据库是依赖项。从外面传递,也许在构造函数中传递。假设它已经打开,让你班级的调用者担心打开,关闭或缓存连接。

在技术层面上,如果您不想进行依赖注入,请查找相应数据库的connection pooling