Извините, если это начинающий вопрос, но я не мог найти ответ в любом месте - я наткнулся класса деструктор в C++, в котором естьдвойное тире перед переменной в C++
--num_strings;
Я задаюсь что означает двойная тире. Любая помощь приветствуется, спасибо. Ниже приведены части заголовочных файлов и CPP:
// strngbad.h
#include <iostream>
class StringBad
{
private:
char * str;
int len;
static int num_strings;
public:
StringBad(const char * s);
StringBad();
~StringBad();
};
// 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;
}
Почему вы знаете, что такое класс и деструктор, но вы еще не знаете арифметических операторов? С каким источником вы изучаете C++? –
Поиск оператора [https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B). Почему сначала не читайте книгу на C++? –
@JerryHu +1 для публикации хорошо сформулированного вопроса вместе с соответствующим кодом. Для всех остальных, прежде чем наказывать OP, пожалуйста, подумайте, что не всегда легко, особенно для самостоятельного объявленного новичка, найти правильные ключевые слова для поиска даже «очевидного» ответа. Например, собственная логика SO, предположительно хорошо выдержанная на C++, по-видимому, не связывает «двойную тире перед переменной» с «префиксом декремента оператора», судя по тому, что указано в столбце 'related' для этого вопроса - даже после нескольких ответы были опубликованы. – dxiv