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

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

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

метод класса во внешней функции - C++

27.06.2011, 22:07. Просмотров 610. Ответов 5
Метки нет (Все метки)

подскажите как во внешней функции, если в нее как параметр передан элемент класса, вызвать метод класса для этого самого элемента класса?

пишу вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void ShowZaryad(Chastica A,Chastica B,Chastica C)     //выводит на консоль данные по заряду частицы
{
    int N;
    cout<<"zaryad_kakoi_chastici_vivisti? "<<A.ShowName<<" najmite 1; "<<B.ShowName<<" najmite 2; "<<C.ShowName<<" najmite 3;"<<endl;
    cin>>N;
    if(N==1)
        A.ShowZaryad<<endl;
    else if(N==2)
        B.ShowZaryad<<endl;
    else
        C.ShowZaryad<<endl;
}
пишет что вот тут использован не элемент класса ->
C++
1
2
3
A.ShowName
B.ShowName
C.ShowName
ну и соответственно когда вызываю метод ShowZaryad аналогичная ошибка. ShowName это метод класса, записан в public
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 22:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос метод класса во внешней функции (C++):

Передача метода класса в качестве аргумента внешней функции - C++
Столкнулся со следующей проблемой. Пусть у меня есть некая внешняя функция, которая принимает в качестве аргумента указатель на функцию...

Как обратиться к методу класса из внешней функции? - C++
Имеется простой класс Employee с методами GetAge() - возвращает возраст, и SetAge(int age). Как сделать так, чтобы работали функции...

Как передать в метод класса Menu указатель на метод дочернего класса? - C++
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: setCallback(*********); //...

Аргумент функции - указатель на метод класса - C++
Здравствуйте. Содержание задания - написать программу, создающую копию выбранного пользователем файла при помощи n-го кол-ва потоков...

Передача переменных из функции в метод класса - C++
У меня есть главная функция и класс, в котором есть 2 функции. Как мне после выполнения 1-й функции с класса вывести с нее 3 переменных...

Как передать функции через метод класса - C++
Добрый вечер всем! Столкнулся с проблемкой К примеру у меня есть 3 функции.Я хочу в 4 функцию дать массив названий этих 3...

5
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
27.06.2011, 22:16 #2
если ShowName - метод класса, почему вызываете A.ShowName, а не A.ShowName()?
1
schdub
2955 / 1300 / 239
Регистрация: 19.01.2009
Сообщений: 3,414
Завершенные тесты: 1
27.06.2011, 22:37 #3
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
вызвать метод класса
в С++ нет методов - только функции.

deamonSuitUp, если у функции нет аргументов, то скобки после ее имени все равно обязательны - это не Pascal.
0
deamonSuitUp
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 27
27.06.2011, 22:41  [ТС] #4
спс, все норм, правда терь пишет что в этой строке -
C++
1
cout<<"zaryad_kakoi_chastici_vivisti? "<<A.ShowName()<<" najmite 1; "<<B.ShowName()<<" najmite 2; "<<C.ShowName()<<" najmite 3;"<<endl;
бинарный "<<" : не найден оператор, принимающий правый операнд типа "void" (или приемлемое преобразование отсутствует

Добавлено через 48 секунд
Цитата Сообщение от schdub Посмотреть сообщение
deamonSuitUp, если у функции нет аргументов, то скобки после ее имени все равно обязательны - это не Pascal.
да, со скобками как ребенок налажал
0
schdub
2955 / 1300 / 239
Регистрация: 19.01.2009
Сообщений: 3,414
Завершенные тесты: 1
27.06.2011, 22:45 #5
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
бинарный "<<" : не найден оператор, принимающий правый операнд типа "void" (или приемлемое преобразование отсутствует
функция ShowName() должна возвращать значение.
1
deamonSuitUp
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 27
27.06.2011, 22:47  [ТС] #6
выровнял все, дело было в написании вспомогательных методов

Добавлено через 51 секунду
ну в смысле "всомогательных" функций класса. они были типа void и в них был cout
0
27.06.2011, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2011, 22:47
Привет! Вот еще темы с ответами:

Как передать метод класса в качестве параметра функции - C++
Это типа &quot;бот&quot;, он работает (&quot;шагает&quot; по заданному полю) #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

Создать на основе класса дополнительный метод из функции main() (односвязные списки) - C++
//Ñîñòàâèòü ïðîãðàììó, êîòîðàÿ â ñïèñêå L çàìåíÿåò ïåðâîå âõîæäåíèå ñïèñêà L1 (åñëè òàêîå åñòü) íà ñïèñîê L2. #include &lt;iostream&gt; ...

Какими способами можно использовать функции класса B, как параметры функции Sub класса А? - C++
class A {... void Sub(...); ...} class B : ... { public: float f1(float); float f2(float); ...

Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this? - C++
Раздел 1. Строки: нужен фрагмент кода. Обязательно используйте функции для работы со строками. Как найти адрес последнего символа строки?...


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

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

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