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

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

Войти
Регистрация
Восстановить пароль
 
vladimir_Ronny
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
#1

Использование статический данных в классах - C++

29.06.2015, 12:26. Просмотров 238. Ответов 10
Метки нет (Все метки)

Добрый день!

Помогите, пожалуйста! Есть задача: создать в классе статическое поле - годовой процент. И присвоить этому полю какое-либо значение.

Вот мой код:

C++ (Qt)
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
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
 
class Depo
{public:
    float Sum; 
    int day; 
    int month;
    int year;
    static float Per;
    
        Depo()
    {
        Sum=10000;
        day=15;
        month=10;
        year=2015;
        float Depo::Per = 0.11;     
        }
 
    void set_Depo()
    {
        cout << Sum << " " << day << "." << month << "." << year << endl;
    cout << Per << endl;
        };
    };
 
int main()
{
    Depo obj1;
    obj1.set_Depo();
return 0;
}
Программа ругается и пишет:
1>c:\c++\lesson 1\lesson 1\lesson 1.cpp(24): error C2655: Depo::Per: недопустимое определение или повторное объявление в текущей области видимости
1> c:\c++\lesson 1\lesson 1\lesson 1.cpp(16): см. объявление "Depo::Per"
1>c:\c++\lesson 1\lesson 1\lesson 1.cpp(24): error C2086: float Depo::Per: переопределение
1> c:\c++\lesson 1\lesson 1\lesson 1.cpp(16): см. объявление "Per"

Я перерыл кучу страниц в интернете, но решения вопроса не нашел.
Помогите, пожалуйста!

Заранее благодарю!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 12:26     Использование статический данных в классах
Посмотрите здесь:

Использование char* в классах - C++
Всем доброе время суток! В общем пытаюсь создать простейший класс с использованием char* для представления строк При компиляции...

Использование полей и методов в дочерних классах - C++
Возникла проблема class Subj { public: char name; char prepod; int hours; bool exam; bool credit;

Маccив->Статический вызов -> и его использование - C++
Помогите исправить ошибку. Суть в том, выводим массив, копируем его два раза. Нужно это копирование использовать и вывести отсортированный...

Преобразование типов данных в классах - C++
если например есть такой код: class TIME { int a; } TIME object; object = 10;

Поведение Приватных данных в классах - C++
Привет, всем я только начинаю изучать С++, для закрепления материалов походу обучения все примеры еще пишу на javascript. И случайно...

Структура данных - статический вектор - C++
Помогите реализовать в моей программе структуру данных статический вектор который используется для хранения объектов каждого производного...

Реализация сравнения данных в массиве в классах - C++
Прошу нравоучения наверн, как организовать можно сравнение веса(weight) спортсменов и вывод в конце программы самого лёгкого.. с массивами...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 520
Записей в блоге: 1
29.06.2015, 12:46     Использование статический данных в классах #2
24 строка
C++
1
Depo::Per = 0.11;
Добавлено через 49 секунд
Но там потом другая ошибка выплывет =)
vladimir_Ronny
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
29.06.2015, 12:51  [ТС]     Использование статический данных в классах #3
Цитата Сообщение от ящюр Посмотреть сообщение
Но там потом другая ошибка выплывет =)
Когда я искал ответ на свой вопрос в интернете, то там предлагалось такое решение. Но программа всё равно не работает.
Да, Вы всё верно сказали - выплывает другая ошибка.

1>Lesson 1.obj : error LNK2001: неразрешенный внешний символ ""public: static float Depo::Per" (?Per@Depo@@2MA)"
1>C:\C++\Lesson 1\Debug\Lesson 1.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.

Помогите, пожалуйста, с ней справиться =)
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 520
Записей в блоге: 1
29.06.2015, 12:52     Использование статический данных в классах #4
Обязательно переменную static то объявлять?
SherHun
29 / 29 / 15
Регистрация: 22.06.2015
Сообщений: 102
29.06.2015, 12:57     Использование статический данных в классах #5
C++
1
2
3
4
5
6
7
class Some
{
public:
    static int stValue;
};
 
int Some::stValue = 1;

vladimir_Ronny, инициализацию
C++
1
 float Depo::Per = 0.11;
за приделы класса вынесите.
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 520
Записей в блоге: 1
29.06.2015, 12:58     Использование статический данных в классах #6
за приделы класса вынесите.
А в конструкторе по умолчанию нельзя использовать статик переменную?
SherHun
29 / 29 / 15
Регистрация: 22.06.2015
Сообщений: 102
29.06.2015, 13:01     Использование статический данных в классах #7
Можно, но уже потом, дополнительно.

Добавлено через 1 минуту
В с++11 должно и такое прокатывать
C++
1
2
3
4
5
class Some
{
 
    static int stValue = 1;
};
vladimir_Ronny
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
29.06.2015, 13:15  [ТС]     Использование статический данных в классах #8
Цитата Сообщение от ящюр Посмотреть сообщение
Обязательно переменную static то объявлять?
Да, это условие задачи =((

Добавлено через 45 секунд
Цитата Сообщение от SherHun Посмотреть сообщение
В с++11 должно и такое прокатывать
Не прокатывает =((

Добавлено через 1 минуту
Цитата Сообщение от SherHun Посмотреть сообщение
vladimir_Ronny, инициализацию
Код C++Выделить код
1
*float Depo::Per = 0.11;
за приделы класса вынесите.
Вынес. Всё равно не работает =((

C++ (Qt)
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
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
 
class Depo
{public:
    float Sum; 
    int day; 
    int month;
    int year;
    static float Per;
    
        Depo()
    {
        Sum=10000;
        day=15;
        month=10;
        year=2015;
        }
 
    void set_Depo()
    {
        cout << Sum << " " << day << "." << month << "." << year << endl;
    cout << Per << endl;
        };
    };
 
int main()
{Depo::Per = 0.11;
    Depo obj1;
    obj1.set_Depo();
return 0;
}
SherHun
29 / 29 / 15
Регистрация: 22.06.2015
Сообщений: 102
29.06.2015, 13:29     Использование статический данных в классах #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
class Depo
{
public:
    float Sum;
    int day;
    int month;
    int year;
    static float Per;
 
    Depo()
    {
        Sum = 10000;
        day = 15;
        month = 10;
        year = 2015;
 
    }
 
    void set_Depo()
    {
        cout << Sum << " " << day << "." << month << "." << year << endl;
        cout << Per << endl;
    };
};
 
float Depo::Per = 0.11;
 
int main()
{
    Depo obj1;
    obj1.set_Depo();
    return 0;
}
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 520
Записей в блоге: 1
29.06.2015, 13:33     Использование статический данных в классах #10
Какой вообще тогда смысл от статической переменной . Если ее можно определить только вне метода. Проще сразу объявить константу.... хотя если только класс не самописный может и имеет смысл =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 14:21     Использование статический данных в классах
Еще ссылки по теме:

Сделать статический массив с разными типами данных - C++
Задача такова, есть ровно 60 магазинов. У каждого магазина по 6 параметров: 1) Адрес типа char 2) Заработок за сутки типа int 3)...

Нюансы использования динамических массивов в качестве данных-членов в классах - C++
Здравствуйте! Не могу создать массив объектов. Помогите ... class hashTable { private: sortedlist* arr ; int arrSize; ...

Структуры данных. Написать программу, позволяющую определить, есть ли в школе в каких-либо классах однофамильцы - C++
Написать программу, позволяющую определить, есть ли в школе в каких-либо классах однофамильцы. Данные об ученике идут в следующем порядке:...

Использование структур данных - C++
помогите исправить ошибки:cry: #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; ...

Использование файлового типа данных - C++
Всем прив:) Дан файл F1, который содержит номера телефонов сотрудников учреждения: указываеться фамилия сотрудника, его инициалы и...


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

Или воспользуйтесь поиском по форуму:
vladimir_Ronny
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 78
29.06.2015, 14:21  [ТС]     Использование статический данных в классах #11
Цитата Сообщение от SherHun Посмотреть сообщение
};
float Depo::Per = 0.11;
int main()
Работает! Спасибо!!!
Yandex
Объявления
29.06.2015, 14:21     Использование статический данных в классах
Ответ Создать тему
Опции темы

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