Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
#1

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

28.02.2013, 14:49. Просмотров 868. Ответов 5
Метки нет (Все метки)

Не подскажете как инициализировать статический массив? Но чтобы я сам мог ввести этот массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2013, 14:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Статические поля класса (C++):

Статические поля класса
class mi { int a,b; public: mi(int a, int b) : a(a),b(b) {} ...

Статические поля и методы
Ни как не могу понят что же такое статические поля и методы, и какое их...

Статические поля и наследование
Поймал себя на мысли, что не всё знаю о статических членах класса, а проверить,...

Статические поля и unresolved символы
пытаюсь создать модель аквариума на с++ ...использую в качестве аквариума класс...

Статические члены класса
Добрый день. Проходили тему - статические члены класса. Написали программу,...

Статические члены класса
Доброго времени суток. Задача состоит в том, чтобы создать список обыектов...

5
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
28.02.2013, 14:54 #2
C++
1
2
3
4
#define size 50
......
private:
int massiv[size];
0
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
28.02.2013, 14:59  [ТС] #3
Вы наверняка не так поняли. Мне нужно создать массив из трех элементов для всех объектов класса. Можно использовать static массив. Но статические переменные нуждаются в дополнительной инициализации вне класса.
class A{
.........
private:
static int mass[3];
};
И как мне инициализировать этот массив вне класса, но чтобы числа я ввел самостоятельно?
0
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
28.02.2013, 15:17 #4
создай статическую функцию InitializeArr и вызывай её в нужном месте, когда параметры для массива подготовишь.
1
The_bolT
70 / 70 / 12
Регистрация: 22.01.2013
Сообщений: 231
28.02.2013, 15:43  [ТС] #5
Вот возникла проблема с функцией Sort(). Почему возникла проблема, я не понимаю ..
C++
1
2
3
4
5
6
7
void Sort(games obj[3])
{
    for(int i=0;i<3;i++)
        for(int j=0;j<3-i;j++)
            if(obj[i].sum_ball < obj[j].sum_ball){
            }
}
C++
1
2
3
4
5
6
7
8
9
------ Построение начато: проект: olimpic games, Конфигурация: Debug Win32 ------
  main.cpp
  games.cpp
c:\documents and settings\admin\мои документы\visual studio 2010\projects\olimpic games\olimpic games\games.cpp(62): error C3867: games::sum_ball: в вызове функции отсутствует список аргументов; используйте "&games::sum_ball" для создания указателя на член
c:\documents and settings\admin\мои документы\visual studio 2010\projects\olimpic games\olimpic games\games.cpp(62): error C3867: games::sum_ball: в вызове функции отсутствует список аргументов; используйте "&games::sum_ball" для создания указателя на член
c:\documents and settings\admin\мои документы\visual studio 2010\projects\olimpic games\olimpic games\games.cpp(62): error C2296: <: недопустимо, левый операнд имеет тип "void (__thiscall games::* )(void)"
c:\documents and settings\admin\мои документы\visual studio 2010\projects\olimpic games\olimpic games\games.cpp(62): error C2297: <: недопустимо, правый оператор имеет тип "void (__thiscall games::* )(void)"
  Создание кода...
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
games.h
Кликните здесь для просмотра всего текста
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
#ifndef games_h
#define games_h
 
const int kMedal = 3;
 
class games
{
public:
    games();  //конструктор
    void Show(); //вивід даних про обєкт
    void setMedals();  //кількість кожниї з медалей
    static void setBals_from_medal(); //ввід балів за кожну медаль
    void setName(); //ввід імені команди
    friend void Sort(games obj[3]);  //сортування
    void sum_ball(); //сума балів за медалі
private:
    static int medals[kMedal];  //бали за золото - 0, стібло - 1, бронзу - 2
    int sum_bals;   //загальна кількість балів
    int sum_medals; //загальна кількість медалей
    int number_medals[3];  //кількість золотих - 0, стібних - 1, бронзових - 2
    char name_comand[10]; //імя команди
};
 
#endif

main.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include "games.h"
 
int main()
{
    games::setBals_from_medal();
    games Obj[3];
    
    Sort(Obj);
    std::system("pause>0");
    return 0;
}

games.cpp
Кликните здесь для просмотра всего текста
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
57
58
59
60
61
62
63
64
#include <iostream>
#include "games.h"
 
using namespace std;
 
int games::medals[3] = {0,0,0};
 
games::games()
{
    sum_bals = 0;
    sum_medals = 0;
    setName();
    setMedals();
    sum_ball();
}
 
void games::setMedals()
{
    cout<<"Enter number for gold: "; cin>>number_medals[0];
    cout<<"Enter number for sriblo: "; cin>>number_medals[1];
    cout<<"Enter number for bronzu: "; cin>>number_medals[2];
    sum_medals = number_medals[0] + number_medals[1] + number_medals[2];
}
 
void games::setName()
{
    cout<<"Enter name comand: "; cin>>name_comand;
}
 
void games::Show()
{
    cout<<endl;
    cout<<"Name comand: "<<name_comand<<endl;
    cout<<"Number medals: "<<sum_medals<<endl;
    cout<<"Suma baliv: "<<sum_bals<<endl;
    cout<<endl;
}
 
void games::setBals_from_medal()
{
    cout<<"Enter ball from gold: ";
    cin>>medals[0];
    cout<<"Enter ball from sriblo: ";
    cin>>medals[1];
    cout<<"Enter ball from bronzu: ";
    cin>>medals[2];
}
 
void games::sum_ball()
{
    for(int i=0;i<3;i++){
        if(i == 0) sum_bals += medals[i] * number_medals[i];
        if(i == 1) sum_bals += medals[i] * number_medals[i];
        if(i == 2) sum_bals += medals[i] * number_medals[i];
    }
}
 
void Sort(games obj[3])
{
    for(int i=0;i<3;i++)
        for(int j=0;j<3-i;j++)
            if(obj[i].sum_ball < obj[j].sum_ball){
            }
}
0
Croessmah
++Ͻ
14163 / 8088 / 1514
Регистрация: 27.09.2012
Сообщений: 19,937
Записей в блоге: 3
Завершенные тесты: 1
28.02.2013, 15:53 #6
C++
1
2
3
4
5
void sum_ball(); //сума балів за медалі
//...
int sum_bals;//загальна кількість балів
//...
obj[i].sum_ball < obj[j].sum_ball//точно ничего не перепутали?
1
28.02.2013, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 15:53
Привет! Вот еще темы с решениями:

Статические данные класса
Здравствуйте. Подскажите, почему при создании класса Date не происходит...

Чем отличаются статические поля от не статических?
чем отличаются статические от не статических полей? почему нельзя создать...

Константные статические объекты класса.
Здравствуйте. Есть класс &quot;матрица&quot; нужно задать константные матрицы такие как E...

Статические массивы, члены класса
необходимо создать статический массив. компилятор gcc #include&lt;iostream&gt;...


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

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

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