关于C++的一道题,谢谢了

2025-02-24 23:39:09
推荐回答(2个)
回答1:

#include 
using std::string;
typedef unsigned long DWORD;

class CResString
{
public:
CResString(DWORD nID){
m_Buffer = (char*)malloc(100);
strcpy(m_Buffer,"Chapter %d");
}

void print()
{
if(Beloaded())
printf("%s\n",m_Buffer);
}
protected:
bool Beloaded(){return true;}
char *m_Buffer;
};

class CHeadline : public CResString
{
//构造
public:
CHeadline(DWORD nID, DWORD chapter) : CResString(nID)
{
if(Beloaded())
{
string s = m_Buffer;
string::size_type l = s.find("%d");
if(l != string::npos)
{
char t[32];
sprintf(t,"%d",chapter);
s.replace(l,l+2,t);

free(m_Buffer);
m_Buffer = (char*)malloc(s.length()+1);
memcpy(m_Buffer,s.c_str(),s.length()+1);
}
}
}
};

void main()
{
CHeadline h(1000,15);
h.print();
}


不知道你的CResString类的实现,我随便补了一个。

回答2:

啥题啊,为何看不见题