You can make lib like attached code and I think no need to make class because this is a simple task. I did not tested code, you will take care of if any problem on code.
byte colPins[4] = { 0,1,2,3 };
byte segPins[7] = { 4,5,6,7,8,9,12 };
byte seg7digits[10][7] = { { 1,1,1,1,1,1,0 }, // = 0
{ 0,1,1,0,0,0,0 }, // = 1
{ 1,1,0,1,1,0,1 }, // = 2
{ 1,1,1,1,0,0,1 }, // = 3
{ 0,1,1,0,0,1,1 }, // = 4
{ 1,0,1,1,0,1,1 }, // = 5
{ 1,0,1,1,1,1,1 }, // = 6
{ 1,1,1,0,0,0,0 }, // = 7
{ 1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,0,0,1,1 } // = 9
};
// Setup
void Seg7Init() {
//
for (byte i = 0; i < 4; ++i) {
pinMode(colPins[i], OUTPUT);
}
//
for (byte i = 0; i < 7; ++i) {
pinMode(segPins[i], OUTPUT);
}
}
// write digit to given address
void Seg7Write(byte col, byte digit) {
for (byte i = 0; i < 7; ++i) {
digitalWrite(segPins[i], seg7digits[digit][i]);
}
digitalWrite(colPins[col], LOW);
}
//Blank the digit
void Seg7Off(byte col) {
digitalWrite(colPins[col], HIGH);
}
//Blank all digits
void Seg7AllOff() {
//
for (byte i = 0; i < 4; ++i) {
Seg7Off(i);
}