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

Классы в c++ - C++

Восстановить пароль Регистрация
 
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 12:22     Классы в c++ #1
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.08.2013, 12:26     Классы в c++ #2
Вот, к примеру, я создал две переменные типа int в функции main. Назвал их vasya и petr. Но в других функциях эти переменные работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях?
Hugra
 Аватар для Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
23.08.2013, 12:43     Классы в c++ #3
Цитата Сообщение от R_G_B Посмотреть сообщение
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Покажи свой код, скажи что необходимо, может тебе помогут быстрее.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11820 / 6799 / 769
Регистрация: 27.09.2012
Сообщений: 16,877
Записей в блоге: 2
Завершенные тесты: 1
23.08.2013, 12:57     Классы в c++ #4
Цитата Сообщение от R_G_B Посмотреть сообщение
. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях.
Можно эти переменные сделать глобальными или передавать в нужные функции в качестве параметров.
А вообще пост #2.
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 12:58  [ТС]     Классы в c++ #5
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
#include <iostream>
char yn;
class score
{
      public:
           char n;
           int score;
           void pscore(void);  
      };
void score::pscore()
{
     std::cout << n << " = " << score << std::endl;
     }
void keyboard()
{
     if (yn == 'y')
    {
    petr.n = 'p'; // ошибка
    petr.score = 243; // ошибка
    vasya.n = 'v'; // ошибка
    vasya.score = 301; // ошибка
    vasya.pscore(); // ошибка
    petr.pscore(); // ошибка
            }
     }
int main()
{
    score vasya,petr;
    std::cin >> yn;
    keyboard();
    system("pause");
    }
Ну вот это, например. Если не использовать функцию keyboard, а писать в main, то все нормально.
Я классы начал учить недавно.
PakistanCode
2 / 2 / 0
Регистрация: 05.02.2013
Сообщений: 175
23.08.2013, 13:02     Классы в c++ #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A
{public:
A(){}
};
 
void fn(A* a)
{
 
}
 
int main()
{
A a,b;
 
fn(&a);
fn(&b);
 
return 0;
}
Например так, если я правильно понял. Возможно есть ошибки. Писал прямо сюда

Добавлено через 2 минуты
R_G_B,
1. переменные сделайте глобальными
C++
1
score vasya,petr;
2. передавайте в функцию
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11820 / 6799 / 769
Регистрация: 27.09.2012
Сообщений: 16,877
Записей в блоге: 2
Завершенные тесты: 1
23.08.2013, 13:06     Классы в c++ #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от R_G_B Посмотреть сообщение
Я классы начал учить недавно.
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:17  [ТС]     Классы в c++ #8
Цитата Сообщение от Croessmah Посмотреть сообщение
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
Учил, но все равно что-то не получается. Лучше структуры буду использовать.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11820 / 6799 / 769
Регистрация: 27.09.2012
Сообщений: 16,877
Записей в блоге: 2
Завершенные тесты: 1
23.08.2013, 13:21     Классы в c++ #9
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А Вы знаете, чем структуры от классов в C++ отличаются?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.08.2013, 13:21     Классы в c++ #10
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А со структурами, выходит, у тебя этой проблемы не возникает?
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:24  [ТС]     Классы в c++ #11
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А со структурами, выходит, у тебя этой проблемы не возникает?
да.
Letfar
 Аватар для Letfar
0 / 0 / 1
Регистрация: 10.12.2011
Сообщений: 47
23.08.2013, 13:32     Классы в c++ #12
Так, скорее всего, будет работать:
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
#include <iostream>
char yn;
class score
{
      public:
           char n;
           int score;
           void pscore(void);  
      };
void score::pscore()
{
     std::cout << score << std::endl;
}
void keyboard(score& vasya, score& petr)
{
    petr.n = 'p'; // îøèáêГ*
    petr.score = 243; // îøèáêГ*
    vasya.n = 'v'; // îøèáêГ*
    vasya.score = 301; // îøèáêГ*
    vasya.pscore(); // îøèáêГ*
    petr.pscore(); // îøèáêГ*
}
int main()
{
    score vasya,petr;
    keyboard(vasya, petr);
 
}
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:46  [ТС]     Классы в c++ #13
Цитата Сообщение от Letfar Посмотреть сообщение
Так, скорее всего, будет работать:
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
#include <iostream>
char yn;
class score
{
      public:
           char n;
           int score;
           void pscore(void);  
      };
void score::pscore()
{
     std::cout << score << std::endl;
}
void keyboard(score& vasya, score& petr)
{
    petr.n = 'p'; // îøèáêГ*
    petr.score = 243; // îøèáêГ*
    vasya.n = 'v'; // îøèáêГ*
    vasya.score = 301; // îøèáêГ*
    vasya.pscore(); // îøèáêГ*
    petr.pscore(); // îøèáêГ*
}
int main()
{
    score vasya,petr;
    keyboard(vasya, petr);
 
}
Работает, спасибо. А что делать если в классе объектов больше?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 14:40     Классы в c++
Еще ссылки по теме:

Классы, включающие другие классы C++
Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы C++
Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.08.2013, 14:40     Классы в c++ #14
Цитата Сообщение от R_G_B Посмотреть сообщение
А что делать если в классе объектов больше?
объектов больше не в классе. А в программе. Объекты это те же самые переменные. Не нужно делать принципиальных различий между встроенными типами данных и пользовательскими (классы, структуры, объединения...)

Я понять не могу, ты не знаешь, какие переменные должна принимать твоя функция?
Пусть, например, принимает массив.
C++
1
void keyboard(score* students)
Добавлено через 6 минут
Повторю ещё раз. "В классе" объектов нету! Класс это тип данных. Такой же, как int, char, double... И там, где применимы эти типы, разрешено применять и класс. Локальные, глобальные переменные, аргументы функций и их возвращаемые значения, массивы..
Yandex
Объявления
23.08.2013, 14:40     Классы в c++
Ответ Создать тему
Опции темы

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