C++中的 静态成员变量,全局类对象,单例模式

前段时间要实习一个充值接口,创建了一个类(就叫类A好了),这个类A要和另外3个类进行交互,3个类对类A修改的数据是对其他类可见的。这种情况我想到了3个方法:

1.static 静态成员,静态成员为该类的所有实例所共享,3个类中各自创建一个类A的对象,它们对静态成员的修改对其他类可见。

2.全局变量,类A的头文件中添加   extern  classA  g_classA; 源文件中添加 classA g_classA;   3个类中添加头文件后直接通过g_classA   //这种不推荐

3.单例模式

使用单例模式替代全局变量,3个类对类A的函数访问都是对类A的唯一实例的数据访问,修改对其他类自然可见了。单例模式是使用全局变量的常见替代方法。

static静态成员的例子如下:

class A
{
public:
    static std::string m_strTestString;
    

};
string A::m_strTestString = "";

class B
{
public:
    void SetValue(const std::string&temp)
    {
        m_Class1.m_strTestString=temp;
    }
    void display()
    {
        cout << m_Class1.m_strTestString << endl;
    }
private:
    A m_Class1;

};
class C
{
public:
    void setvalue(const std::string& temp1)
    {
        m_Class2.m_strTestString=temp1;
    }
private:
    A m_Class2;
};

int main()
{
    B zhc;
    zhc.SetValue("123");
    C ty;
    ty.setvalue("456");
    zhc.display();

}

猜你喜欢

转载自blog.csdn.net/zhanghuaichao/article/details/82527033
今日推荐