Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19

Как вызвать метод одного класса в другом?

13.02.2015, 14:49. Показов 7816. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть два отдельных класса. Вопрос, как вызвать метод одного класса в другом?
что-то слышал о экземпляре класса, указатели, но так и не смог разобраться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2015, 14:49
Ответы с готовыми решениями:

Как вызвать метод из одного класса в другой класс
Подскажите пожалуйста как вызвать метод из другого класса: class A { public: B *b; void DrFunc() { ... // как вызвать метод...

Вызвать метод класса в другом классе
Подскажите как мне вызвать метод класса в другом классе ?

Как вызвать метод из одного класса чтобы он был виден в другом классе?(Отсылка от старой темы)
Добрый вечер,Я почти разобрался только у меня последний вопрос Как исправить?Смотрите скрин. Надо что бы не было такой ошибки. В...

4
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
13.02.2015, 14:55
Владисалав, код выложите, тогда ясно будет. А так способов много.
0
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19
13.02.2015, 14:58  [ТС]
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
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
using namespace std;
 
int _menu()
{
    // Выбранный вариант меню
    int variant;
    cout << "Выберите вариант\n" << endl;
    cout << "1. Добавить книгу\n"
         << "2. Удалить книгу\n"
         << "3. Найти книгу\n"
         << "4. Сортировка Книг\n"
         << "5. выйти\n" << endl;
    cout << ">>> ";
    cin >> variant;
    return variant;
}
 
class Library
{
public:
    Book* books;
 
    void Addbook (char* name, int year)
    {
        Book book(name, year);
 
    }
};
 
class Book
{
private:
    char* title;
    int Year;
public:
    Book(char* name, unsigned int year)
    {
        strcpy(title, name);
        Year = year;
    }
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char* Name = new char;
    int Year;
    Library A;
    cout << "Автор  : "; cin >> Name;
    cout << "Год издания : "; cin >> Year;
    cout << "========================================\n========================================\n";
    int variant = _menu();
    switch (variant) {
        case 1:
            A.Addbook (Name,Year);
            break;
        case 2:
            cout << "..." << endl;
            break;
        case 3:
            cout << "..." << endl;
            break;
        case 4:
            cout << "..." << endl;
            break;
        case 5:
            cout << "Выход из программы..." << endl;
            exit(EXIT_SUCCESS);
            break;
        default:
            cerr << "Вы выбрали неверный вариант" << endl;
            exit(EXIT_FAILURE);
    }
    system ("pause");
    return 1;
}
Суть задачи создать библиотеку
я начал потихоньку создавать методы
и раз уж код выложил еще вопрос появляется
в методе Addbook класса Библиотека, я создаю объект, как к нему потом обращаться?
А вообще мне нужно в классе библиотека в одном из методов, вызвать метод из класса книга
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
13.02.2015, 15:28
Цитата Сообщение от Владисалав Посмотреть сообщение
в методе Addbook класса Библиотека, я создаю объект, как к нему потом обращаться?
никак, он у тебя удаляется при покидании области видимости.

А вообще метод другого класса может быть статический, тогда вызывается вот так Class::method(); или любой другой
C++
1
2
Class object;
object.method();
без обьекта нестатические методы смысла не имеют, так что тебе нужно иметь обьект, или ссылку/указатель на него.

ШО ЖЕ ДЕЛАТЬ?

капитан намекает, что класс библиотеки долже содержать много книг(читаем про контейнеры vector). соответственно
C++
1
2
3
4
5
6
7
8
9
10
11
class Library{
...
vector<Book> books;
public:
void addBook(...){
books.push_back(...);
}
void dosmthwithBook(...){
books[...].method();
}
}
примерно.

что непонятно, могу обьяснить подробнее...
0
28 / 28 / 5
Регистрация: 23.04.2014
Сообщений: 130
13.02.2015, 17:47
Если объект Book book принадлежит объекту Lib lib, то метод можно вызвать так:
C++
1
lib.book.method();
Если же у тебя не объекты а указатели на них, то . заменяется на ->. Например, если у тебя есть объект Lib lib, внутри него указатель на Book * book:
C++
1
lib.book->method();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2015, 17:47
Помогаю со студенческими работами здесь

Как вызвать метод класса в другом методе этого же класса?
&lt;? class load_files{ public function traverse_hierarchy($path) { // from...

Как вызвать стринг из одного класса чтобы он был виден в другом классе?
Доброго дня всем,у меня появился вопрос по классам. И так,у меня есть 2 класса ProcessClass.java и My30.java.В процессе ProcessClass.java...

Как из одного потока вызвать метод таким образом, чтобы он выполнялся в другом потоке
Значит имеется некая активность, которая запускает сервер по нажатии кнопки, этот сервер в свою очередь запускает выполнение своей фоновой...

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса?
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна найти в i-том элементе какую-то...

С помощью делегата из одного класса вызвать private метод с другого класса
доброго времени суток. такой вопрос. С применением делегатов и пониманием проблем нет когда происходит простой вызов из Main() функции. Но...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru