Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 703587
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T03:50:51+00:00 2026-05-14T03:50:51+00:00

Firstly, I am very new to function pointers and their horrible syntax so play

  • 0

Firstly, I am very new to function pointers and their horrible syntax so play nice.

I am writing a method to filter all pixels in my bitmap based on a function that I pass in. I have written the method to dereference it and call it in the pixel buffer but I also need a wrapper method in my bitmap class that takes the function pointer and passes it on. How do I do it? What is the syntax? I’m a little stumped.

Here is my code with all the irrelevant bits stripped out and files combined (read all variables initialized filled etc.).

struct sColour
{
    unsigned char r, g, b, a;
};

class cPixelBuffer
{
private:
    sColour* _pixels;
    int _width;
    int _height;
    int _buffersize;
public:
    void FilterAll(sColour (*FilterFunc)(sColour));
};


void cPixelBuffer::FilterAll(sColour (*FilterFunc)(sColour))
{
    // fast fast fast hacky FAST
    for (int i = 0; i < _buffersize; i++)
    {
        _pixels[i] = (*FilterFunc)(_pixels[i]);
    }
}

class cBitmap
{
private:
    cPixelBuffer* _pixels;
public:
    inline void cBitmap::Filter(sColour (*FilterFunc)(sColour))
    {
           //HERE!!
    }
};
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T03:50:52+00:00Added an answer on May 14, 2026 at 3:50 am

    If I understand what you want:

    inline void cBitmap::Filter(sColour (*FilterFunc)(sColour))
    {
           _pixels->FilterAll( FilterFunc);
    }
    

    Often dealing with function pointers can be made easier to read if you use a typedef for the function pointer type (yours actually isn’t too bad on its own – they can get much worse very easily):

    struct sColour
    {
        unsigned char r, g, b, a;
    };
    
    typedef 
    sColour (*FilterFunc_t)(sColour);   // typedef for a FilterFunc
    
    class cPixelBuffer
    {
    private:
        sColour* _pixels;
        int _width;
        int _height;
        int _buffersize;
    public:
        void FilterAll(FilterFunc_t FilterFunc);
    };
    
    
    void cPixelBuffer::FilterAll(FilterFunc_t FilterFunc)
    {
        // fast fast fast hacky FAST
        for (int i = 0; i < _buffersize; i++)
        {
            _pixels[i] = (*FilterFunc)(_pixels[i]);
        }
    }
    
    class cBitmap
    {
    private:
        cPixelBuffer* _pixels;
    public:
        inline void cBitmap::Filter(FilterFunc_t FilterFunc)
        {
               _pixels->FilterAll( FilterFunc);
        }
    };
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.