Как вызвать метод класса c
Перейти к содержимому

Как вызвать метод класса c

  • автор:

Как вызвать метод класса 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

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

Есть метод Class::method();
Как мне его вызвать из другого класса Class2? Объявил заголовочный class.h во втором классе, но все равно пишет, что Class wasn’t declared.

Пробовал передать указатель в конструктор Class2, как Class *pp. При объявлении класса вписал this. Все равно происходит ошибка. Что я делаю не так?

  • Вопрос задан более трёх лет назад
  • 18046 просмотров

2 комментария

Оценить 2 комментария

привидите пример исходников.

l2p @l2p Автор вопроса

@Fesor К примеру, есть основной qt-класс (Class1). В нем публичный метод method1(); Я создал другой класс (Class2). Подключил основной заголовочный в нем и хочу вызвать метод Class1::method1();

Решения вопроса 0
Ответы на вопрос 4

Вы снова не изучив базу C++ и документацию по Qt стараетесь решить поставленную задачу с наскока. Язык программирования C++ это не тот язык, где можно использовать такой подход. Вы либо твёрдо знаете основы, либо не знаете совсем ничего.

Вам необходимо воспользоваться обменом данными между классами. Это можно сделать различными способами: геттеры-сеттеры, двойное наследование, передача указателя, система сигналов-слотов, общий класс для обмена данными, статические методы и т. д.

И ещё у вас достаточно странный подход. Форма должна опрашивать логический класс, а не наоборот. То есть ваш не_GUI-класс ничего не должен содержать и дёргать Qt’шного. Вдруг его придётся выносить в отдельную библиотеку, никак не относящуюся к GUI и Qt?

Настоятельно рекомендую посмотреть примеры приложений, идущие с Qt. Там вы найдёте все ответы на свои вопросы и методы построения правильной архитектуры приложения.

Ответ написан более трёх лет назад
Нравится 4 2 комментария
l2p @l2p Автор вопроса

@EXL
Вы правы. База действительно нужна, но в данный момент от меня требуют работоспособную программу в краткие сроки. С книгами и сайтами буду возиться после, чтобы пополнить свои знания. Если Вам не сложно, могли бы Вы ответить еще на 2 моих вопроса? Буду очень признателен.
1). Чем именно пользоваться, чтобы объединить все кнопки, QLabel-ы? Вроде нашел QLayout. То ли это? Нужно просто скрывать и показывать все содержимое одной командой.
2). Можно ли в отдельно созданном классе создать динамически кнопку (или любой другой объект), но чтобы она отображалась вместе с остальными? В основном классе я создаю ее так QPushButtom *btn = new .. (this); Как, если возможно, мне создать ее в какой-нибудь lala.h?
Заранее спасибо!

@l2p
1. Да, слоями.
2. Да, возможно. Наследование.

Стукните в контакты в профиле. Если что помогу вам с подобными проблемами. Только яснее объясняйте. Желательно на реальных примерах, мол «Есть такой-то класс, в нём такой-то метод, как его вызывать из такого-то класса? Пробовал вот так — не получается, в чём проблема?»

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 для разработчиков

Поиск 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-2024 © Маматов Андрей

Использование материалов с данного сайта разрешено при указании прямой ссылки на страницу с ним. По вопросам сотрудничества или просто вопросам писать сюда или ВКонтакте.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *