Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
1

Классы в c++

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

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

Непонятна тема (Классы содержащие другие классы, как данные члены )
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и...

Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но через классы
Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но используя...

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

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

13
Kuzia domovenok
2945 / 2503 / 651
Регистрация: 25.03.2012
Сообщений: 8,943
Записей в блоге: 1
Завершенные тесты: 1
23.08.2013, 12:26 2
Вот, к примеру, я создал две переменные типа int в функции main. Назвал их vasya и petr. Но в других функциях эти переменные работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях?
1
Hugra
49 / 49 / 9
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
23.08.2013, 12:43 3
Цитата Сообщение от R_G_B Посмотреть сообщение
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Покажи свой код, скажи что необходимо, может тебе помогут быстрее.
0
Croessmah
++Ͻ
16047 / 9146 / 1758
Регистрация: 27.09.2012
Сообщений: 22,504
Записей в блоге: 2
Завершенные тесты: 2
23.08.2013, 12:57 4
Цитата Сообщение от R_G_B Посмотреть сообщение
. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях.
Можно эти переменные сделать глобальными или передавать в нужные функции в качестве параметров.
А вообще пост #2.
0
23.08.2013, 12:57
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 12:58  [ТС] 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, то все нормально.
Я классы начал учить недавно.
0
PakistanCode
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
23.08.2013, 13:02 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. передавайте в функцию
1
Croessmah
++Ͻ
16047 / 9146 / 1758
Регистрация: 27.09.2012
Сообщений: 22,504
Записей в блоге: 2
Завершенные тесты: 2
23.08.2013, 13:06 7
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от R_G_B Посмотреть сообщение
Я классы начал учить недавно.
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
3
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:17  [ТС] 8
Цитата Сообщение от Croessmah Посмотреть сообщение
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
Учил, но все равно что-то не получается. Лучше структуры буду использовать.
0
Croessmah
++Ͻ
16047 / 9146 / 1758
Регистрация: 27.09.2012
Сообщений: 22,504
Записей в блоге: 2
Завершенные тесты: 2
23.08.2013, 13:21 9
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А Вы знаете, чем структуры от классов в C++ отличаются?
0
Kuzia domovenok
2945 / 2503 / 651
Регистрация: 25.03.2012
Сообщений: 8,943
Записей в блоге: 1
Завершенные тесты: 1
23.08.2013, 13:21 10
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А со структурами, выходит, у тебя этой проблемы не возникает?
0
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:24  [ТС] 11
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А со структурами, выходит, у тебя этой проблемы не возникает?
да.
0
Letfar
0 / 0 / 2
Регистрация: 10.12.2011
Сообщений: 47
23.08.2013, 13:32 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);
 
}
0
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:46  [ТС] 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);
 
}
Работает, спасибо. А что делать если в классе объектов больше?
0
Kuzia domovenok
2945 / 2503 / 651
Регистрация: 25.03.2012
Сообщений: 8,943
Записей в блоге: 1
Завершенные тесты: 1
23.08.2013, 14:40 14
Цитата Сообщение от R_G_B Посмотреть сообщение
А что делать если в классе объектов больше?
объектов больше не в классе. А в программе. Объекты это те же самые переменные. Не нужно делать принципиальных различий между встроенными типами данных и пользовательскими (классы, структуры, объединения...)

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

Классы, включающие другие классы
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) ...

Классы возможностей(Mixin классы)
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет...

классы/дочерние классы/методы
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл...


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

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

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