首页 > 编程语言 >c++跨文件修改成员变量

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

时间:2023-11-29 18:46:19浏览次数:46  
标签:getTotal 变量 int c++ 修改 static student teacher

如果在一个文件中有一个成员变量,需要在另外一个文件中修改这个成员变量。把这个成员变量加一个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文件中,实现了跨文件修改变量。

 

标签:getTotal,变量,int,c++,修改,static,student,teacher
From: https://www.cnblogs.com/tianqianlan/p/17865569.html

相关文章

  • 一对多 多对多 添加记录,修改,删除
    一对多添加记录:publish=models.Publish.objects.create(name='北京出版社',addr='北京',phone='0536-12345678',email='邮箱地址')#新增西游记图书book=models.Book.objects.create(name='红楼梦',price='23.45',publish=publish)#pu......
  • oracle、sql server Join连表修改。
    1、Oracle连表修改mergeintot_usert1using(select*fromt_class)t2on(t1.userId=t2.userId)whenmatchedthenupdatesett1.name=t2.name2、Sqlserver连表修改UPDATEbSETb.ProductSN=p.productsnFROMt_userbINNERJOINt_studentpONb.MainSN=p.Ma......
  • c++ 虚函数表
    在C++中,虚函数表(vtable)是存储在类的内存空间中的,每个包含虚函数的类都有一个虚函数表。这个表是一个存储虚函数地址的数组,它在编译时被创建。虚函数表保存在.rdata只读数据段,也就是C++内存模型中的常量区。虚函数表属于类,类的所有对象共享这个类的虚函数表。虚表指针(vptr)是对......
  • C/C++ Zlib库封装MyZip压缩类
    Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-LoupGailly和MarkAdler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是基于DEFLATE算法,这是一种无损数据压缩算法,通常能够提供......
  • C++完美开发环境vscode+clangd+lldb+xmake(已亲测有效,使用体验秒杀vscode官方C++插件)
    vscode下载并安装1.下载vscode官网下载网速不好的可以在这里自取:vscode蓝奏云下载密码:hnp42.安装选择我同意可以选择不创建开始菜单这里勾选了最后一个选择(添加到系统环境变量中,如果没有勾选这个选项,则需要手动添加),其他的按自己情况勾选,建议全部勾选方便使用安装......
  • 从一个txt文件中读取数据,并且再把读取到的数据修改为想要的格式,再逐行写入到另一个txt
    packageservice;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.util.List;/***从一个txt文件中读取数据,并且再把读取到的数据修改为想要的格......
  • C++20高级编程 第五章 面向对象程序设计
    第五章面向对象设计面向过程思想众所周知的,C语言是一门面向过程编程的语言,而C++是一门半面向对象编程(ObjectOrientedProgramming,OOP)的语言.面向过程编程的语言通常将代码分割成小块,每个小块理论上完成单一的任务.如果在C程序中没有过程,所有代码都会集中于main()......
  • c++的多态
    在C++中,多态是面向对象编程的一个重要特性,它允许通过基类的指针或引用来调用派生类的成员函数。多态的字面意思是“多种形态”,它允许相同的操作可以作用于不同的对象,而具体执行的操作则取决于对象的类型和特性。在C++中,多态主要通过虚函数来实现。虚函数是在基类中使用关键字v......
  • js 拼接字符串带变量(js方法参数单双引号拼接的问题记录)
    小结:外面单引号,里面双引号,然后方法参数给转义的单引号即可(看下面的onClick事件即可)//刷新二级信号表格(增删改操作后)functionreloadSignal(subId){//清空$("#msgAll"+subId).empty();//js手工添加表格varhtmlStart='<spanstyle="position:......
  • C++ 图论之次最小生成树
    1.前言生成树指在无向图中找一棵包含图中的所有节点的树,此树是含有图中所有顶点的无环连通子图。对所有生成树边上的权重求和,权重和最小的树为最小生成树,次小的为次最小生成树。最小生成树和次最小生成树的应用领域都较广泛。也是图论中优为重要的研究对象,求解算法也是常规必须......