Tuesday 30 May 2017

oop - How do you create a static class in C++?




How do you create a static class in C++? I should be able to do something like:



cout << "bit 5 is " << BitParser::getBitAt(buffer, 5) << endl;


Assuming I created the BitParser class. What would the BitParser class definition look like?


Answer



If you're looking for a way of applying the "static" keyword to a class, like you can in C# for example, then you won't be able to without using Managed C++.



But the looks of your sample, you just need to create a public static method on your BitParser object. Like so:




BitParser.h



class BitParser
{
public:
static bool getBitAt(int buffer, int bitIndex);

// ...lots of great stuff


private:
// Disallow creating an instance of this object
BitParser() {}
};


BitParser.cpp



bool BitParser::getBitAt(int buffer, int bitIndex)
{

bool isBitSet = false;
// .. determine if bit is set
return isBitSet;
}


You can use this code to call the method in the same way as your example code.



Hope that helps! Cheers.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...