Jump to content
    

C++ разделение интерфейса и реализации. Вызвать приватный метод класса.

2 minutes ago, one_eight_seven said:

код под спойлером

код не совпадает с оригиналом,  у автора класс называется data :dirol:

Share this post


Link to post
Share on other sites

On 11/1/2022 at 1:13 AM, Forger said:

код не совпадает с оригиналом,  у автора класс называется data :dirol:

Хм... Т.е. "попробовать красной ручкой"? ;-)

Share this post


Link to post
Share on other sites

6 minutes ago, one_eight_seven said:

Это я к тому, что неужели сложно сделать себе песочницу, чтобы хеллоу ворлды там писать, а не спрашивать о них на форуме?

Тут и вроде и так понятно, что должна проходить компиляция. И без тестов. Вопрос был- может что не вижу. На ровном месте просто.

Share this post


Link to post
Share on other sites

On 11/1/2022 at 1:15 AM, Метценгерштейн said:

Вопрос был- может что не вижу.

А мы должны увидеть, не видя вашего кода? И, если понятно и без тестов, то почему тема так называется, и почему вы приводите именно эти элементы кода?

 

P.S. И раз уж у вас hint на initPWM2, погрепайте, посмотрите пути к инклюд-файлам, да и сами инклюд файлы. Вполне возможно, что вы собираете не то, что нам показываете

Edited by one_eight_seven

Share this post


Link to post
Share on other sites

Just now, one_eight_seven said:

почему вы приводите именно эти элементы кода?

Подозреваю, что профиль чужой, может кто-то подарил из старших коллег. Это многое объяснило бы ))

Share this post


Link to post
Share on other sites

3 minutes ago, one_eight_seven said:

А мы должны увидеть, не видя вашего кода? И, если понятно и без тестов, то почему тема так называется, и почему вы приводите именно эти элементы кода?

Тема так- взяли сомнения. Согласен, что можно было проверить. 

Элементы эти ,т.к. думал, что в них запутался

3 minutes ago, Forger said:

Подозреваю, что профиль чужой, может кто-то подарил из старших коллег. Это многое объяснило бы ))

профиль мой. Я с 2005 года здесь. На ++ недавно начал переходить.

Share this post


Link to post
Share on other sites

On 11/1/2022 at 1:19 AM, Метценгерштейн said:

Элементы эти ,т.к. думал, что в них запутался

Вверху я дописал про хинт. Посмотрите, может, дело там.

Share this post


Link to post
Share on other sites

5 minutes ago, one_eight_seven said:

Вверху я дописал про хинт. Посмотрите, может, дело там.

itinPWM2- это ф-я- дублер. Она в .cpp файле этом же. Выше есть безо всяких .h и прочего новомодного. И работает. На нее и ссылается. 

Вот закомментил дублера

 

Screenshot_3.jpg

Share this post


Link to post
Share on other sites

16 minutes ago, Метценгерштейн said:

На ++ недавно начал переходить.

Не вижу разницы для данной ситуации. От плюсов тут только слово class/private/public, остальное - банальная дисциплина в коде 😉

 

Share this post


Link to post
Share on other sites

поскольку код не оригинальный а упрощенный, может класс, где вызывается initPWM() производный от data?

Share this post


Link to post
Share on other sites

Вопрос решил.

Я вызывал не совсем так как привел в коде. Я вызывал из обычной ф-ии, не ф-ии класса этот метод из класса. Просто это ф-я была обработчиком прерывания. И из нее нельзя вызвать приватный, либо публичный метод класса.

Есть нюансы с++

Share this post


Link to post
Share on other sites

13 minutes ago, Метценгерштейн said:

И из нее нельзя вызвать приватный, либо публичный метод класса.

Можно. "friend" тебе в помощь.

А ещё "проще"- это сделать так:

Spoiler
class IRQ
{
    protected:

        virtual void IRQ_Handler( void ) = 0;
...

 

И потом использовать так:

Spoiler
class PLC_Timer : protected IRQ
{
	protected:

        virtual void IRQ_Handler( void );
    ...

 

 

Share this post


Link to post
Share on other sites

2 hours ago, Метценгерштейн said:

И из нее нельзя вызвать приватный, либо публичный метод класса.

Публичный можно, через экземпляр класса.

Приватный на то  и приватный, чтобы кто попало не лазил внутрь класса.

Share this post


Link to post
Share on other sites

6 hours ago, Метценгерштейн said:

Я вызывал не совсем так как привел в коде. Я вызывал из обычной ф-ии, не ф-ии класса этот метод из класса.

Петрович, я слышал ты 100р в лотерею выиграл?

Ну почти. Во первых не в лотерею, а в покер, по вторых не 100 а 1000, а в третьих не выиграл, а проиграл.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...