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

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

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

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

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

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

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

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

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

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

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

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include <iostream> class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
23.08.2013, 12:26 #2
Вот, к примеру, я создал две переменные типа int в функции main. Назвал их vasya и petr. Но в других функциях эти переменные работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях?
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
23.08.2013, 12:43 #3
Цитата Сообщение от R_G_B Посмотреть сообщение
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов не существует. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях. Надеюсь, что меня меня все поняли. Заранее спасибо.
Покажи свой код, скажи что необходимо, может тебе помогут быстрее.
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
23.08.2013, 12:57 #4
Цитата Сообщение от R_G_B Посмотреть сообщение
. Можно ли как нибудь сделать так, что бы эти объекты были во всех функциях.
Можно эти переменные сделать глобальными или передавать в нужные функции в качестве параметров.
А вообще пост #2.
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, то все нормально.
Я классы начал учить недавно.
PakistanCode
2 / 2 / 0
Регистрация: 05.02.2013
Сообщений: 177
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. передавайте в функцию
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
23.08.2013, 13:06 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от R_G_B Посмотреть сообщение
Я классы начал учить недавно.
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:17  [ТС] #8
Цитата Сообщение от Croessmah Посмотреть сообщение
А передачу параметров в функции? Либо рано за классы взялись, либо где-то главу пропустили.
Учил, но все равно что-то не получается. Лучше структуры буду использовать.
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
23.08.2013, 13:21 #9
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А Вы знаете, чем структуры от классов в C++ отличаются?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
23.08.2013, 13:21 #10
Цитата Сообщение от R_G_B Посмотреть сообщение
Лучше структуры буду использовать.
А со структурами, выходит, у тебя этой проблемы не возникает?
R_G_B
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 7
23.08.2013, 13:24  [ТС] #11
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А со структурами, выходит, у тебя этой проблемы не возникает?
да.
Letfar
0 / 0 / 1
Регистрация: 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);
 
}
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);
 
}
Работает, спасибо. А что делать если в классе объектов больше?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
23.08.2013, 14:40 #14
Цитата Сообщение от R_G_B Посмотреть сообщение
А что делать если в классе объектов больше?
объектов больше не в классе. А в программе. Объекты это те же самые переменные. Не нужно делать принципиальных различий между встроенными типами данных и пользовательскими (классы, структуры, объединения...)

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

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

КЛАССЫ - C++
Очень нужна помощь!!! подскажите где ошибки: #include &lt;iostream&gt; #include &lt;windows.h&gt; char* Rus(const char* text); using...

Классы в С++ - C++
Ребята, помогите пожалуйста. Я новичок в программировании, а сессия заканчивается. Нужно привести пример класса (С++): описание класса,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.08.2013, 14:40
Ответ Создать тему
Опции темы

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