c++跨文件修改成员变量

发布时间 2023-11-29 18:39:10作者: 白包子

如果在一个文件中有一个成员变量,需要在另外一个文件中修改这个成员变量。把这个成员变量加一个static变成静态成员变量即可。

如下所示:

在A.cpp中有student类

class student
{
public:
    student();

public:  //声明静态成员函数
    static int getTotal();
    static float getPoints();

public:
    static int m_total;  //总人数
    static float m_points;  //总成绩
};

 在B.cpp中有teacher类,我们需要在teacher类中修改student中的m_total、m_points变量

class teacher
{
public:
    teacher();
};

此时把student中的成员变量变成静态成员变量即可。在teacher类的用法为:

teacher::teacher()
{
    student::m_total = 10;
    student::m_points = 7.8;
}

在student类中测试变量是否改变:

student::student()
{

}

int student::getTotal()
{
    std::cout<<m_total<<std::endl;
    return 0;
}

float student::getPoints()
{
 std::cout<<m_points<<std::endl;
 return 0;
}

int student::m_total = 3;
float student::m_points = 5.6;

在main函数中验证:

int main(int argc, char *argv[])
{
    student::getTotal();
    student::getPoints();
     teacher te;
    student::getTotal();
    student::getPoints();
    student st;
    st.getTotal();
    st.getPoints();
    return 0;
}

输出结果为:

 此时变量的值发生了改变,但是student类和teacher类是在不同的cpp文件中,实现了跨文件修改变量。