首页 > 编程语言 >C++(静态成员函数、静态成员变量)

C++(静态成员函数、静态成员变量)

时间:2024-01-16 18:12:25浏览次数:25  
标签:变量 静态 成员 C++ int MyClass 函数

目录

在C++中,静态成员函数和静态成员变量是与类相关联而不是与类的实例相关联的。它们属于类而不是类的实例,并且可以通过类名访问,而不需要创建类的实例。



静态成员函数(Static Member Functions)

静态成员函数是与类相关联而不是与类的实例相关联的函数。它们不能访问类的非静态成员变量和非静态成员函数,因为它们没有this指针。静态成员函数通过类名调用,而不是通过类的实例。

class MyClass {
public:
    // 静态成员函数
    static void staticFunction() {
        // 可以访问静态成员变量
        staticVar = 10;
        // 不能访问非静态成员变量
        // nonStaticVar = 5; // 错误
    }

private:
    // 静态成员变量
    static int staticVar;

    // 非静态成员变量
    int nonStaticVar;
};

// 初始化静态成员变量
int MyClass::staticVar = 0;

int main() {
    // 调用静态成员函数
    MyClass::staticFunction();

    return 0;
}


静态成员变量(Static Member Variables)

静态成员变量是与类相关联而不是与类的实例相关联的变量。它们只有一个副本,被所有类的实例共享。静态成员变量必须在类的定义外部进行初始化。

class MyClass {
public:
    // 静态成员变量
    static int staticVar;

    // 普通成员函数
    void nonStaticFunction() {
        // 可以访问静态成员变量
        staticVar = 10;
    }
};

// 初始化静态成员变量
int MyClass::staticVar = 0;

int main() {
    // 通过类名访问静态成员变量
    MyClass::staticVar = 5;

    // 通过类的实例访问静态成员变量
    MyClass obj;
    obj.nonStaticFunction();

    return 0;
}

总体而言,静态成员函数和静态成员变量对于在类的所有实例之间共享信息或执行与类相关的操作非常有用。



标签:变量,静态,成员,C++,int,MyClass,函数
From: https://www.cnblogs.com/keye/p/17968237

相关文章

  • c++程序加速方法
    1.将反复使用的数据存放在全局变量里面。需要重复使用的数据,比如加载的图片,CSV文件等数据,存放在全局变量里面,每次加载DLL时,只加载一次,直到卸载DLL,这些数据一直保持在内存中,避免重复加载,经过测试,这样处理之后,漏装检测的时间由2.5S降低到了1.5S,因为反复读取文件,图片是一个很消耗时......
  • C++ 重载bool类型
    在C++中,可以通过重载operatorbool()来实现对自定义类型的bool类型重载。这样,您可以定义自定义类型的对象在条件语句中的行为,使其能够像内置类型一样进行条件判断。下面是一个示例,演示了如何在C++中重载bool类型:#include<iostream>#include<string>usingnamespacestd;cl......
  • 仿sina个人轻微博html静态网页模板
    一款最新的仿sina个人微博html静态网页模板(轻博客/轻微博/贴吧主页、qq社交空间主题),模板清新简洁、新颖,包含关注、粉丝、人气、个人资料、文章、视频等。比较适合类似爱装扮空间的女生,二次元动漫、插画绘画等内容的个人轻社交博客的模板主题。 模板主题特色:1......
  • C++U3-第10课-排序进阶(归并、快排)
    归并排序是一种经典的排序算法,适用于各种不同场景和数据类型的排序需求。它具有以下使用背景和优势:通用性:归并排序适用于各种不同类型的数据结构和数据类型,包括数组、链表、字符串等。它可以对任意长度的序列进行排序。稳定性:归并排序是一种稳定的排序算法,即在排序过程中相......
  • C++---打开txt文件进行字符串的查找替换最终生成Excel文件
    #include<iostream>#include<fstream>#include<sstream>#include<string>#include<vector>#include<algorithm>#include<iomanip>usingnamespacestd;voidfindAndReplaceAll(string&source,conststring&......
  • c++重载
    注意:函数的返回值不可以作为函数重载的条件函数重载的注意事项1.引用作为重载的条件2.函数重载遇到函数默认参数......
  • 14静态成员变量,静态成员函数,常成员方法
    静态成员变量,静态成员函数,常成员方法静态成员变量是类级别共享的,都可以用类名作用域来调用或查询。静态成员变量不属于类对象在类中声明,在类外定义。相当于一个以类为作用域的全局变量。静态成员函数没有this指针,只能访问静态成员变量和静态成员函数。classDate{public......
  • 15指向成员变量和成员方法的指针
    指向成员变量和成员方法的指针指向成员变量的指针classTest{public: intma; staticintmb;};intTest::mb;intmain(){//类对象的成员变量指针不是普通的指针,需要加入类名限定符//类的静态成员变量指针不针对某一个特定对象,使用普通指针 int*p=&Tes......
  • CDN静态资源加速&Lighthouse性能监测
    本文主要介绍了cdn加速在项目中的实现,以及使用Lighthouse对前端性能指标进行监测打分。Lighthouse简介Lighthouse是谷歌开发并开源的web性能测试工具,用于改进网络应用的质量,可以将其作为一个Chrome扩展程序运行,或从命令行运行。只需要为其提供一个需要审查的地址,Lighthouse就会......
  • 《c++lib篇》lib简介
    lib简介原文链接:https://blog.csdn.net/ucliaohh/article/details/128324744静态链接库,静态链接1、静态链接库,有lib、h二个文件。lib包含函数代码本身,在编译时直接将代码加入程序当中。(这种方式不是很灵活,因为lib被编译到.exe中,写出的程序体积大,但是只需要发布exe即可,不需要dl......