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

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

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Синтакисис статик поля - C++

20.04.2011, 12:00. Просмотров 906. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
 potected:
  int i;
  A (int i);
  const static A a;
};
A::A (int i)
{
 this->i=i;
}
A (10) A:: a; // Компилу эта строка не нравится. Почему? И как правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 12:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Синтакисис статик поля (C++):

Статик + конструктор - C++
class A { public: A() { a = 10; b = 20; } private: static int a, b;

Шаблоны и статик - C++
Добрый вечер. Вот кусочек кода, почему то переменная dx постоянно обнуляется хотя она static. В чем проблема? template <class T, int n>...

Инициализация статик класс мемберов - C++
Добрый день, есть какой-то лайф-фак, чтобы на ряду с возможностями С++11 инициализация класс-мемберов значениями по умол прям в header...

Реализация статик структуры в хедер файле - C++
Всем привет. Есть у меня структура со статическими методами и я решил не разделять реализацию и объявление и засунуть всё в один хедер файл...

Почему без "статик" не работает? - C++
Дело в том что без него (без static) программка не работает корректно. по задумке (а оно так и выходит) в открывающемся окошке фоновый...

Битовые поля. Поля без типа и имени - C++
Вчера сделал очень интересную и болезненную ошибку (с точки зрения времени, так как искал я ее долго)... представьте структуру (битовое...

11
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 12:02 #2
Цитата Сообщение от taras atavin Посмотреть сообщение
A (10) A:: a;
Что Вы этим хотели сказать?
Возможно:
C++
1
A A:: a(10);
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
20.04.2011, 12:02 #3
Потому что она состоит из какого-то бреда.
2
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 12:06 #4
Только const надо будет убрать
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2011, 12:06  [ТС] #5
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Что Вы этим хотели сказать?
Возможно:
C++
1
A A:: a(10);
результат тот же.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 12:07 #6
taras atavin, см. сообщение http://www.cyberforum.ru/cpp/thread279980.html#post1570114.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2011, 12:12  [ТС] #7
Без const получилось. Но как всё же сделать этот статик константой?
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
20.04.2011, 12:25 #8
const A A::a(10);
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 12:35 #9
taras atavin, объясните чего Вы хотите добиться в итоге. А то Ваш код, мягко говоря, выглядит ужасающе.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.04.2011, 05:43  [ТС] #10
Я хочу добиться, чтоб класс имел неизменяемое статик поле, причём типом этого поля должен быть сам этот класс и его надо создать private конструктором с параметром.

Добавлено через 2 минуты
Причём, я возомнил себя велосипедных дел подмастерьем и клепаю свою реализацию классов размерных величин и единиц ищзмерения.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.04.2011, 06:52 #11
Примерно так...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
 
class Foo
{
private:
    Foo(int foo1, int foo2, int foo3):
    m_foo1(foo1),
    m_foo2(foo2),
    m_foo3(foo3)
    {
    }
 
public:
    Foo(int foo1, int foo2):
    m_foo1(foo1),
    m_foo2(foo2),
    m_foo3(0)
    {
    }
 
    int get_foo1() const
    {
        return m_foo1;
    }
 
    int get_foo2() const
    {
        return m_foo2;
    }
 
    int get_foo3() const
    {
        return m_foo3;
    }
 
private:
    int m_foo1;
    int m_foo2;
 
    int m_foo3;
 
public:
    static const Foo zero;
};
 
const Foo Foo::zero = Foo(0, 0, 10);
 
int main()
{
    Foo bar(1, 2);
 
    std::cout << bar.get_foo1() << "\t" << bar.get_foo2() << "\t" << bar.get_foo3() << std::endl;
    std::cout << Foo::zero.get_foo1() << "\t" << Foo::zero.get_foo2() << "\t" << Foo::zero.get_foo3() << std::endl;
 
    return 0;
}
1
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.04.2011, 07:10  [ТС] #12
Спасибо, получилсоь.
0
21.04.2011, 07:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 07:10
Привет! Вот еще темы с ответами:

Статик и линк - C++ Qt
Сделал программу на qt не очень сложную, свой интерфейс. Нужно теперь это передать знакомому. Думал сделать все статической библиотекой, но...

Как удалить статик по клику на него? - C++ WinAPI
вот само задание. 1. Пользователь «щелкает» левой кнопкой мыши по форме диалога и, не отпуская кнопку, ведёт по ней мышку, а в момент...

ООП подмена статик функции в наследнике - Программирование Android
Гуру ООП явы, помогите! Есть класс сервиса. В нем есть статик &quot;запускатель&quot; Start. В этом запускателе вызывается другая статик функция...

Как вывести статик текст красного цвета? - C++ WinAPI
Как в своем окне вывести статик текст красного цвета?


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

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

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