c++纯虚函数给定十进制n进行进制转换

给定一个int型n,编程实现按不同进制输出,包括十进制,八进制和十六进制。要求使用纯虚函数print()。

纯虚函数是写在虚类里的。
然后各个子类继承这个纯虚函数。

img

showmemeber就是一个纯虚函数。

#include <iostream>
using namespace std;
class A
{
    protected:
       int n;  
       int s[1000];
       int num;
    public:
          A() {num = 0;}
          A(int a) {n=a;num=0;}        
          virtual void print() = 0;
        
};

class Ten:public A
{
    public:
        Ten() {}
        Ten(int a) : A(a) {}
        void print() 
        {
            int k = n;
            while(k>0)
            {
                s[num++] = k%10;
                k=k/10;
            }
            for(int i=num-1;i>=0;i--)
                cout<<s[i];
        }
};

class Eight:public A
{

    public:
        Eight() {}
        Eight(int a) : A(a) {}
        void print() 
        {
            int k = n;
            while(k>0)
            {
                s[num++] = k%8;
                k=k/8;
            }
            for(int i=num-1;i>=0;i--)
                cout<<s[i];          
        }
};

class Sixteen:public A
{

    public:
        Sixteen() {}
        Sixteen(int a) : A(a) {}
        void print() 
        {
            num = 0;
            int k = n;
            while(k>0)
            {
                s[num++] = k%16;
                k=k/16;
            }
            for(int i=num-1;i>=0;i--)
            {
                if(s[i]<10)
                    cout<<s[i];
                else
                    cout<<(char)(s[i]-10+'A');
            }
        }
};

int main()
{
    A *p = new Sixteen(1294);
    p->print();
    return 0;
}