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

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

Войти
Регистрация
Восстановить пароль
 
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
#1

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

23.08.2013, 12:22. Просмотров 549. Ответов 13
Метки нет (Все метки)

Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 12:22     Классы в c++
Посмотрите здесь:

C++ классы
C++ Классы в C++
C++ Классы на с++
C++ Классы на с++
Классы C++
классы C++
C++ Классы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
23.08.2013, 12:26     Классы в c++ #2
Вот, к примеру, я создал две переменные типа int в функции main. Назвал их vasya и petr. Но в других функциях эти переменные работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях?
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
23.08.2013, 12:43     Классы в c++ #3
Цитата Сообщение от R_G_B Посмотреть сообщение
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Покажи свой код, скажи что необходимо, может тебе помогут быстрее.
Croessmah
Модератор
Эксперт CЭксперт С++
12675 / 7183 / 801
Регистрация: 27.09.2012
Сообщений: 17,709
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
12675 / 7183 / 801
Регистрация: 27.09.2012
Сообщений: 17,709
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
12675 / 7183 / 801
Регистрация: 27.09.2012
Сообщений: 17,709
Записей в блоге: 2
Завершенные тесты: 1
23.08.2013, 13:21     Классы в c++ #9
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А Вы знаете, чем структуры от классов в C++ отличаются?
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 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
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++ Классы
Классы C++
Классы С++ C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 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++
Ответ Создать тему
Опции темы

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