Форум программистов, компьютерный форум CyberForum.ru

Инициализация переменной в классе - C++

Восстановить пароль Регистрация
 
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 137
02.01.2014, 12:48     Инициализация переменной в классе #1
Пытаюсь инициализировать в классе переменную и дальше ее использовать
C++
1
2
3
4
5
6
7
8
class Lines
{
double PI = 3.141592653589793238462;
void static Init(int argc, char** argv)
    {
        for(GLdouble i = 0; i < 4.0; i += 0.05)
        {
            GLdouble func = exp(-i) * cos(2 * PI * i);
но получаю ошибку data member initializer is not allowed
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
02.01.2014, 13:00     Инициализация переменной в классе #2
Такая инициализация полей возможна только в С++11. Т.е. либо собирайте с соответствующими флагами, либо пишите конструктор, либо делайте поле static. Тем более, что попытка его использования - именно в static методе.
Или использовать буст:
C++
1
boost::math::constants::pi<double>();
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.01.2014, 13:00     Инициализация переменной в классе #3
Удалил.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.01.2014, 13:25     Инициализация переменной в классе #4
static-метод действительно является членом всего класса, а не его экземпляра, значит, если и всякое обращение из такого метода к полю не через явный параметр-экземпляр подразумевает членство поля непосредственно в классе, а не в его экзепляре. Но не статик-поля - члены экземпляров, а не самих классов. Так что при таком синтаксисе обращения надо поле делать static. Кроме того, по смыслу данного PI - константа, а не переменная, а объявлена, как переменная.
Yandex
Объявления
02.01.2014, 13:25     Инициализация переменной в классе
Ответ Создать тему
Опции темы

Текущее время: 07:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru