Как вызвать метод класса c
Пользователь
Регистрация: 28.03.2011
Сообщений: 32
Как вызвать функцию из класса ?
Есть класс, а в нем функция
class test < public: int sh(); >; sh()
А как теперь его вызвать ?
test::sh();
не прокатывает, вылазит ошибка
Use . or -> to call ‘test::sh() |
, однако при попытке test.sh(); или test->sh(); тоже не компилируется
Silly Student |
Посмотреть профиль |
Найти ещё сообщения от Silly Student |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
вот так попробуй
int test::ch() < //тут тело метода >
Пользователь
Регистрация: 25.05.2011
Сообщений: 89
class test < public: int sh(); >; int test::sh() < ShowMessage("sh"); return 0; >void main()
Последний раз редактировалось _Alerter_; 13.10.2011 в 20:09 .
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вызвать функцию из функции ? | PheonixS | JavaScript, Ajax | 3 | 16.12.2010 05:35 |
Как вызвать функцию из юнита? | Des | Общие вопросы Delphi | 5 | 06.11.2010 12:47 |
Вызвать функцию с известной сигнатурой для неизвестного класса. Интерфейс | Ferrum26 | Общие вопросы Delphi | 4 | 22.07.2010 14:26 |
Как вызвать метод из другого класса в C# | KobolD | Помощь студентам | 6 | 25.06.2010 14:12 |
Как вызвать функцию? | blackstersl | Общие вопросы Delphi | 10 | 07.06.2009 19:22 |
Вызвать метод класса в потоке, С++
Добрый день! Изучаю ООП С++, попутно переписываю старые программы в стиле ООП, наткнулся на проблему. Есть объект Х класса Test, в классе есть два метода, допустим метод А и метод Б, метод А крутится в цикле и ожидает определенного события, когда событие происходит метод А должен вызвать метод Б в параллельном потоке (thread t1) и открепить (t1.detach()) его, в свою очередь метод Б должен иметь возможность продолжать работать с объектом Х. Подскажите как это правильно реализовать? Для запуска обычной функции в потоке, все было просто
thread t1(Function, Param1, Param2); t1.detach();
С методами, понятное дел, так не получается, буду благодарен за пример или объяснение.
VladV
29.05.17 12:05:53 MSK
Как вызвать метод класса c
Если переменные хранят некоторые значения, то методы содержат собой набор инструкций, которые выполняют определенные действия. По сути метод — это именованный блок кода, который выполняет некоторые действия.
Общее определение методов выглядит следующим образом:
[модификаторы] тип_возвращаемого_значения название_метода ([параметры]) < // тело метода >
Модификаторы и параметры необязательны.
Ранее мы уже использовали как минимум один метод — Console.WriteLine() , который выводит информацию на консоль. Теперь рассмотрим, как мы можем создавать свои методы.
Определение метода
Определим один метод:
void SayHello()
Здесь определен метод SayHello , который выводит некоторое сообщение. К названиям методов предъявляются в принципе те же требования, что и к названиям переменных. Однако, как правило, названия методов начинаются с большой буквы.
Перед названием метода идет возвращаемый тип данных. Здесь это тип void , который указыает, что фактически ничего не возвращает, он просто производит некоторые действия.
После названия метода в скобках идет перечисление параметров. Но в данном случае скобки пустые, что означает, что метод не принимает никаких параметров.
После списка параметров в круглых скобках идет блок кода, который представляет набор выполняемых методом инструкций. В данном случае блок метода SayHello содержит только одну инструкцию, которая выводит строку на консоль:
Console.WriteLine("Hello");
Но если мы запустим данный проект, то мы не увидим никакой строки, которую должен выводить метод SayHello. Потому что после определения метод еще надо вызвать, чтобы он выполнил свою работу.
Вызов методов
Чтобы использовать метод SayHello, нам надо его вызвать. Для вызова метода указывается его имя, после которого в скобках идут значения для его параметров (если метод принимает параметры).
название_метода (значения_для_параметров_метода);
Например, вызов метода SayHello будет выглядеть следующим образом:
SayHello();
Поскольку метод не принимает никаких параметров, то после названия метода идут пустые скобки.
Объединим определение и вызов метода:
void SayHello() < Console.WriteLine("Hello"); >SayHello(); // Hello SayHello(); // Hello
Консольный вывод программы:
Hello Hello
Преимуществом методов является то, что их можно повторно и многократно вызывать в различных частях программы. Например, в примере выше два раза вызывается метод SayHello.
При этом в данном случае нет разницы, сначала определяется метод, а потом вызывается или наоборот. Например, мы могли бы написать и так:
SayHello(); // Hello SayHello(); // Hello void SayHello()
Определим и вызовем еще несколько методов:
void SayHelloRu() < Console.WriteLine("Привет"); >void SayHelloEn() < Console.WriteLine("Hello"); >void SayHelloFr() < Console.WriteLine("Salut"); >string language = «en»; switch (language)
Здесь определены три метода SayHelloRu() , SayHelloEn() и SayHelloFr() , которые также имеют тип void , не принимают никаких параметров и также выводит некоторую строку на консоль. Условно говоря, они выводят приветствие на определенном языке.
В конструкции switch проверяется значение переменной language , которая условно хранит код языка, и в зависимости от ее значения вызывается определенный метод. Так, в данном случае на консоль будет выведено
Hello
Сокращенная запись методов
Если метод в качестве тела определяет только одну инструкцию, то мы можем сократить определение метода. Например, допустим у нас есть метод:
void SayHello()
Мы можем его сократить следующим образом:
void SayHello() => Console.WriteLine("Hello");
То есть после списка параметров ставится оператор => , после которого идет выполняемая инструкция.
C#: Как вызвать метод класса не создавая объект класса?
Для этого нужно указать, что метод является статическим.
class Test < public void f1() < MessageBox.Show("1"); >public static void f2() < MessageBox.Show("2"); >> Test.f1(); //Error Test.f2(); //OK
Запись опубликована в рубрике C#, Вопрос-ответ. Добавьте в закладки постоянную ссылку.
Поделись с друзьями!
Language
Поиск
Поиск Google для разработчиков
Категории
- 1С (13)
- C# (72)
- C# Windows Phone (2)
- C++ (1)
- HTML (6)
- JavaScript (32)
- MySQL (1)
- PHP (48)
- Вопрос-ответ (27)
- Другие языки и технологии (4)
- Интересные моменты (2)
- Обзоры (2)
- Проще говоря (17)
- Учебное пособие C# (5)
Меня читает весь мир
Статистика и кнопочки
А так же
Метки
2011-2023 © Маматов Андрей
Использование материалов с данного сайта разрешено при указании прямой ссылки на страницу с ним. По вопросам сотрудничества или просто вопросам писать сюда или ВКонтакте.