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

Как обраиться к функции класса через другую функцию класса (друга)? - C++

Восстановить пароль Регистрация
 
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
14.11.2013, 22:59     Как обраиться к функции класса через другую функцию класса (друга)? #1
Пример кода:
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
#include <iostream>
using namespace std;
class Sasha;
class Petya
{
    public:
    friend class Sasha;
    void func()
    {
        fn();///Тут ошибка
    }
};
class Sasha
{
    public:
    void fn()
    {
        cout<<"Access granted";
    }
};
int main()
{
    Petya petya;
    petya.func();
    return 0;
}
Подскажите пожалуйста, как мне обратиться к функции fn() класса Sasha через функцию func() класса Petya?????
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 22:59     Как обраиться к функции класса через другую функцию класса (друга)?
Посмотрите здесь:

как скомпилить два класса котоые используют методы друг друга C++
C++ Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
C++ Какими способами можно использовать функции класса B, как параметры функции Sub класса А?
Передача функции (как параметра) в функцию унаследоваемого класса C++
Как передать функции через метод класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
14.11.2013, 23:05     Как обраиться к функции класса через другую функцию класса (друга)? #2
Ты наверное не понимаешь, что обращаться надо не к функции класса, а к функции какого-либо объекта(экземпляра этого класса)
И то, кто там друг, а кто нет, к теме не относится. Ты похоже не понимаешь главного: разницы между классом и объектом(экземпляром) этоо класса!
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
14.11.2013, 23:48  [ТС]     Как обраиться к функции класса через другую функцию класса (друга)? #3
Kuzia domovenok, Иными словами Вы хотели сказать, что обратиться к функции fn() нельзя. Я правильно понял??
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.11.2013, 00:04     Как обраиться к функции класса через другую функцию класса (друга)? #4
Цитата Сообщение от Nikko12 Посмотреть сообщение
Иными словами Вы хотели сказать, что обратиться к функции fn() нельзя.
fn() это метод класса. без объекта нельзя вызвать метод.
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
15.11.2013, 19:03  [ТС]     Как обраиться к функции класса через другую функцию класса (друга)? #5
Jupiter, Можно пожалуйста показать на моем примере, что нужно исправит (дописать), что-бы обратиться к функции fn() класса Sasha через функцию func() класса Petya???
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2013, 20:03     Как обраиться к функции класса через другую функцию класса (друга)? #6
Nikko12, Да никак же, блин! Твоя задача поставлена некорректно! Или ты просто путаешь функции-члены со статическими функциями?
В любом случае, разберись сначала в том, что такое класс и что такое функции-члены класса. А то ты, похоже, ни одной главы о классах из учебника по С++ не прочёл.

Добавлено через 6 минут
... или прочёл-таки?
Иначе, как объяснить что функцию func ты-таки корректно вызвал
C++
1
2
3
    Petya petya;
    petya.func();
    return 0;
В любом случае, ты пропустил саму суть понятия "класс"
Иначе бы понял, что для твоего примера два класса нахрен не нужно объявлять!
Вот до этого ты не додумался просто?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class man{
    public:
    void func()
    {
        cout<<"Access granted ";
    }
};
int main()
{
    man petya;
    man sasha
    petya.func();
    sasha.func();
    return 0;
}
Или тебе так приспичило именно два класса. Или ты реально не знал, что экземпляров класса может быть сколько угодно, блин!
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.11.2013, 22:46     Как обраиться к функции класса через другую функцию класса (друга)? #7
Nikko12,
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
#include <iostream>
 
using namespace std;
 
class Sasha
{
    friend class Petya;
private: //!
    void fn() const
    {
        cout<<"Access granted";
    }
};
 
class Petya
{
public:
    void func(const Sasha& s)
    {
        s.fn();
    }
};
 
int main()
{
    Petya petya;
    Sasha sasha;
    petya.func(sasha);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2013, 23:50     Как обраиться к функции класса через другую функцию класса (друга)?
Еще ссылки по теме:

как передать значение функции класса в другую функцию C++
C++ Как передать указатель на функцию через метод класса ?
C++ Как полю класса А обратится к приватной функции класса А?

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

Или воспользуйтесь поиском по форуму:
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
15.11.2013, 23:50  [ТС]     Как обраиться к функции класса через другую функцию класса (друга)? #8
Kuzia domovenok, Я хотел используя дружеский класс вызвать функцию другого класса в данном случае класса Sasha, для этого я и использовал два класса. Т.Е. Функция класса Petya получает доступ к функции класса Sasha.

Добавлено через 3 минуты
Jupiter, Благодарю, за помощь. То, что я и хотел.
Yandex
Объявления
15.11.2013, 23:50     Как обраиться к функции класса через другую функцию класса (друга)?
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru