C ++ должен определить как статический constexpr double - не может инициализировать статическую нецелую переменную внутри класса - PullRequest
0 голосов
/ 27 июня 2019

// Я нашел полезную информацию в других вопросах, касающихся статических переменных и их инициализации. Я нашел обходной путь (не хотелось решать это с помощью отдельного файла, как предлагается здесь: Инициализировать статические переменные в классе C ++? ), но это было бы решением для того, чтобы иметь возможность использовать статическую переменную в качестве аккумулятора для операций, выполняемых в определенных случаях их методами.

Извините за потраченное время, я не думаю, что этот вопрос добавляет ценность сообществу и должен быть закрыт.

Статическая функция mostrarTotal (), которая пытается напечатать два статических аккумулятора, не работает, потому что они неправильно определены.


class Vendedor {
    private:
        static double sumatot;
        static double comtot;
    public:
        static void mostrarTotal();
};

//Static method to print static variables sumatot and comtot
void Vendedor :: mostrarTotal() {
    cout << "Las ventas totales fueron: " << sumatot << " para una comisión de: " << comtot;
}

int main () {

//This line throws the error
    Vendedor::mostrarTotal();

    return 0;
}

1 Ответ

4 голосов
/ 27 июня 2019

Вы должны вызывать статические функции, такие как ClassName :: functionName (), в вашем случае:

Vendedor::mostrarTotal();
...