0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19
1

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

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

Author24 — интернет-сервис помощи студентам
У меня есть два отдельных класса. Вопрос, как вызвать метод одного класса в другом?
что-то слышал о экземпляре класса, указатели, но так и не смог разобраться.
0
13.02.2015, 14:49
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 2
Владисалав, код выложите, тогда ясно будет. А так способов много.
0
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19
13.02.2015, 14:58  [ТС] 3
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 4
Цитата Сообщение от Владисалав Посмотреть сообщение
в методе 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 5
Если объект Book book принадлежит объекту Lib lib, то метод можно вызвать так:
C++
1
lib.book.method();
Если же у тебя не объекты а указатели на них, то . заменяется на ->. Например, если у тебя есть объект Lib lib, внутри него указатель на Book * book:
C++
1
lib.book->method();
0
13.02.2015, 17:47
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Создаем SPA Router на чистом JavaScript
bytestream 17.02.2025
В современной веб-разработке одностраничные приложения (SPA) стали стандартом для создания динамичных и отзывчивых пользовательских интерфейсов. Ключевым компонентом любого SPA является роутер -. . .
Машинное обучение на TypeScript и TensorFlow
bytestream 17.02.2025
Машинное обучение становится все более востребованным направлением в современной разработке программного обеспечения. Интеграция искусственного интеллекта в веб-приложения открывает новые возможности. . .
Манипуляция данными EXIF и JPEG в JavaScript
bytestream 17.02.2025
В современном мире цифровой фотографии метаданные изображений играют важнейшую роль в организации и управлении медиаконтентом. Формат EXIF (Exchangeable Image File Format) - это стандарт,. . .
Как создать GUID/UUID в JavaScript
bytestream 17.02.2025
GUID (Globally Unique Identifier) и UUID (Universally Unique Identifier) - это специальные форматы 128-битных идентификаторов, которые практически гарантируют уникальность значения во времени и. . .
Что такое мышление в упрощенном смысле (моё субъективное видение, для создания модели).
Hrethgir 17.02.2025
Разумеется упрощать смысл есть. Дело в том, что я пришёл к тому выводу, что даже если я создам свой процессор (конвейер), то первое для чего смогу его использовать в качестве демонстративного. . .
Как Node.js устроен изнутри
Wired 17.02.2025
Node. js коренным образом изменил подход к веб-разработке, позволив использовать JavaScript не только в браузере, но и на стороне сервера. Созданный в 2009 году Райаном Далем, Node. js представляет. . .
Как обновить Node.js в Windows
Wired 17.02.2025
Думаю, многие разработчики сталкивались с ситуацией, когда устаревшая версия Node. js становилась источником проблем - от несовместимости с новыми пакетами до уязвимостей в безопасности. Особенно это. . .
Как обновить Node.js в MacOS
Wired 17.02.2025
В Node. js существует несколько подходов к обновлению, каждый из которых имеет свои преимущества и особенности применения. Выбор конкретного метода зависит от ваших потребностей - будь то. . .
Как обновить Node.js в Linux
Wired 17.02.2025
Обновление Node. js может показаться сложной задачей, особенно если у вас несколько проектов с разными зависимостями. Однако существует несколько надежных способов обновления, подходящих для разных. . .
[golang] 134. Gas Station
alhaos 17.02.2025
Тут нам даны два целочисленных слайса gas и cost, индексы массива представляют собой заправочные станции. а элементы gas это количество топлива на такой станции, cost это количество топлива. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru