在C++中的变量前双击

Jer*_* Hu 1 c++ operators

很抱歉,如果这是一个初学者问题,但我无法在任何地方找到答案 - 我在C++中遇到了一个类析构函数,其中有

--num_strings;
Run Code Online (Sandbox Code Playgroud)

我想知道双击意味着什么.任何帮助表示赞赏,谢谢.以下是标头和cpp文件的一部分:

// strngbad.h
#include <iostream>
class StringBad
{
private: 
    char * str;
    int len;
    static int num_strings;

public:
    StringBad(const char * s);
    StringBad();
    ~StringBad();
};
Run Code Online (Sandbox Code Playgroud)
//  strngbad.cpp
#include <cstring>
#include "strngbad.h"
using std::cout;
....
....
....

StringBad::StringBad(const char *s)
{
    len = std::strlen(s);
    str = new char[len + 1];
    std::strcpy(str, s);
    num_strings++;
}

StringBad::~StringBad()
{
    --num_strings;
    delete [] str;
}
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 9

它的前缀减量运算符.它从变量中减去1并将结果存储回变量中.作为表达式,它具有递减后的结果值.除了表达式的值是递减之前的变量值之外,还有一个后缀递减运算符,其行为相同.

(那是因为num_stringsint.当然,像C++中的大多数运算符一样,如果变量是一个类,它可以为前缀--运算符定义自己的语义,所以所有的赌注都是关于它的作用.)


STF*_*STF 5

-它是前缀减量运算符,它意味着你没有从值中删除一个.

--num_strings;
Run Code Online (Sandbox Code Playgroud)

它完全一样:

num_strings=num string -1;
Run Code Online (Sandbox Code Playgroud)