首页 > 编程语言 >C++ 定义静态数据成员简单测试

C++ 定义静态数据成员简单测试

时间:2024-07-19 19:51:28浏览次数:7  
标签:静态数据 定义 int C++ sumCount addCount

#include <iostream>
#include <string>

namespace
{
    class A
    {
    public:
        void addCount()
        {
            ++sumCount;
        }
        static int getSumCount()
        {
            return sumCount;
        }
    private:
        static int sumCount;
    };

    int A::sumCount = 0;  // 定义静态成员
}

int main()
{
    A a1;
    A a2;

    a1.addCount();
    a2.addCount();
    a2.addCount();

    std::cout << "总数:" << A::getSumCount() << std::endl;
    return EXIT_SUCCESS;
}

输出:

总数:3

参考,《C++ Primer》。

定义静态数据成员也只能定义一次,和定义成员函数一样的,所以一班放在 cpp 文件中定义。

标签:静态数据,定义,int,C++,sumCount,addCount
From: https://www.cnblogs.com/huvjie/p/18312283

相关文章

  • Facebook 开源 C++ 框架 Ocean:用于计算机视觉和增强现实
    Facebook开源C++框架Ocean:用于计算机视觉和增强现实来源:OSCHINA编辑: 局2024-07-1211:05:00 0Facebook开源了其内部用于计算机视觉(CV)和增强现实(AR) 应用程序的框架Ocean,用于执行各种任务,包括计算机视觉、几何、媒体处理、网络和渲染。Ocean......
  • C++多线程
    多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。基于进程的多任务处理是程序的并发执行。基于线程的多任务处理是同一程序的片段的并发执行。多线程程序包含可以同时运行的两个或多个......
  • YOLOV8自定义数据集训练过程中遇到的问题
    书接上回,在弄好了Labelimg了以后,便开始了图像的标注。按照官网推荐的格式,建好文件夹。文件夹格式:dataset下为train和val两个文件夹,两个文件夹中的内容均为images和labels。images里放的就是图像了,labels为标注的数据。接下里就是创建自己的yaml文件,文件的内容指定数据集的根......
  • C++宏魔法:__VA_OPT__操作
    在阅读chromium源码的时候,在\blinkrendercore的base\check.h头文件中,发现了这个定义:#defineCHECK(condition,...)\LOGGING_CHECK_FUNCTION_IMPL(\::logging::C......
  • C++ 智能指针
    一、为什么需要智能指针看如下代码有什么问题:intdiv(){ inta,b; cin>>a>>b; if(b==0) throwinvalid_argument("除0错误"); returna/b;}voidFunc(){ //1、如果p1这里new抛异常会如何? //2、如果p2这里new抛异常会如何? //3、如果div调用这里又......
  • 【C++】学习笔记——AVL树
    文章目录十六、AVL树1.AVL树的概念2.AVL树节点的定义3.AVL树的插入4.AVL树的旋转5.AVL树的验证6.完整代码+测试7.AVL树的性能未完待续十六、AVL树1.AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素......
  • C/C++ 《二级指针浅拷贝》
    背景A对象内部属性a属于int,动态分配内存回收,析构函数deleteA**aptr=newA[10]申请10个空间长度的A*类型测试浅拷贝测试代码#include<iostream>usingnamespacestd;classA{public:int*a;A(inti){//构造函数a=newint(i);}~A(......
  • C++数组中lower_bound和upper_bound函数的用法
    lower_bound函数首先,对于一个升序的数组(下标从0或者1开始是无所谓的,这里假设下标从1到n),即:a[1]<=a[2]<=a[3]<=...<=a[n]这个数列是(非严格)单调递增的。lower_bound(a+1,a+n+1,x)会返回a[1..n]中所有\(\gex\)的元素里面最小的那个数的地址。也就是说,......
  • C++信号处理
    什么是信号#include<csignal>或#include<signal.h>是处理信号的C-library。该库包含signal与raise两个功能函数。I.函数signal用于捕获信号,可指定信号处理的方式。II.函数raise产生一个信号,并向当前正在执行的程序发送该信号。signal()函数信号signal可以......
  • C++ 智能指针简单实现
    #pragmaoncetemplate<typenameTR>classjoker_shared_ptr{private:TR*ptr;size_t*count;public:constexprjoker_shared_ptr(/*args*/)noexcept{}constexprjoker_shared_ptr(std::nullptr_t)noexcept{}explicitjoker_sha......