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

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

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

Author24 — интернет-сервис помощи студентам
У меня есть два отдельных класса. Вопрос, как вызвать метод одного класса в другом?
что-то слышал о экземпляре класса, указатели, но так и не смог разобраться.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2015, 14:49
Ответы с готовыми решениями:

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

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

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

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

4
Эксперт PHP
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2015, 17:47
Помогаю со студенческими работами здесь

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

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

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

С помощью делегата из одного класса вызвать private метод с другого класса
доброго времени суток. такой вопрос. С применением делегатов и пониманием проблем нет когда...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru