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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
#1

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

02.01.2014, 12:48. Просмотров 816. Ответов 3
Метки нет (Все метки)

Пытаюсь инициализировать в классе переменную и дальше ее использовать
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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2014, 12:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация переменной в классе (C++):

Инициализация переменной в шаблонном классе - C++
Как правильно инициализировать шаблонную переменную в классе? Т.е. есть ли какая разница между x() и x( T() ) ? 1-й вариант ...

Инициализация указателя в классе - C++
Есть класс const int NoL = 0; class A{ private: int&amp; IF; A(){IF = NoL; }; } на что компилятор ругается &quot;IF&quot;:...

Инициализация массива в классе - C++
class matrix { int arr; ...... public: .............. void set_a(int input, int i, int j){arr=input;}; //тут ошибка };

Инициализация char в классе - C++
Не понимаю, как поместить символьный массив в класс. На выводе получаются случайные символы. class Person { char last_name; public: ...

Инициализация массива в классе - C++
Как инициализировать массив в классе? Пишу такой код, но компилятор выдает: 9:53: error: incompatible types in assignment of 'int' to...

Инициализация укзателей в классе - C++
Всем привет читаю книгу Пабло Халперна &quot;Стандарная библиотека С++ на примерах&quot;. Там, в качестве обучения читателю предлагается пройти...

3
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
02.01.2014, 13:00 #2
Такая инициализация полей возможна только в С++11. Т.е. либо собирайте с соответствующими флагами, либо пишите конструктор, либо делайте поле static. Тем более, что попытка его использования - именно в static методе.
Или использовать буст:
C++
1
boost::math::constants::pi<double>();
1
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.01.2014, 13:00 #3
Удалил.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.01.2014, 13:25 #4
static-метод действительно является членом всего класса, а не его экземпляра, значит, если и всякое обращение из такого метода к полю не через явный параметр-экземпляр подразумевает членство поля непосредственно в классе, а не в его экзепляре. Но не статик-поля - члены экземпляров, а не самих классов. Так что при таком синтаксисе обращения надо поле делать static. Кроме того, по смыслу данного PI - константа, а не переменная, а объявлена, как переменная.
0
02.01.2014, 13:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2014, 13:25
Привет! Вот еще темы с ответами:

Инициализация valarray в классе - C++
Добрый день. Требуется помощь коллективного разума: совсем забыл, как прогать. Есть следующий кусок простого кода: //1.h ...

Инициализация массива в классе - C++
OS: WinXP Compiler: VC++ 6.0 Извиняюсь, заранее за глупый вопрос, но тем не менее: Есть класс: class Table{ public: ...

Инициализация статической константы в классе - C++
собственно сабж как это сделать если константа имеет тип класса? (не интегральная) т.е. надо вызвать у нее конструктор с определенным...

Static поля в классе и инициализация - C++
Мне нужен класс, у которого было бы общие переменные и функции их устанавливающие \ читающие для всех экземпляров. Но статик поля требует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru