C++问题:

1.C++可以描述为包括C和C++两部分。所以用C++解决问题,无非就是算法和对象。即面向过程的算法和表面对象的抽象。

2。建议你学习一下面向对象,UML,设计模式等等。

3。要解决这个问题,你可以像C一样思考,但是在那个基础上,把它打包成类。

4。你说的都在C++标准库中,就是STL。可以搜STL的书。

5。这个。。。我不知道你想要什么,你想要什么。我现在在写指针,先把这个贴上吧。

模板& lt类型名_DLG,类型名_数据& gt

结构页面

{

typedef TPage & lt类型名_DLG,类型名_数据& gt_ ThisType

_ DLG * _ p;

int _ nRef

t页面()

{

_ p = NULL

_ nRef = 0;

}

~ t页面()

{

如果(_p)

{

_ p-& gt;destroy window();

delete _ p;

_ p = NULL

if(_nRef)

{

nRef-;

}

}

}

void Initial(_DATA数据类型,CWnd* pWnd)

{

CRect rect

pWnd-& gt;GetWindowRect(rect);

_ p =新DLG(pWnd);

_ p-& gt;SetData(数据类型);

_ p-& gt;Create(_DLG::IDD,pWnd);

CRect rectX

GetWindowRect(_ p-& gt;GetSafeHwnd()、rectX);

int nWidth=rectX。width();

int nHeight=rectX。height();

rectX.left=rect.left+(rect。Width()-rectX。width())/2;

rectx . right = rectx . left+nWidth;

rectX.top=rect.top+(rect。height()-n height)/2;

rectx . bottom = rect . top+n height;

_ p-& gt;move window(rectX);

_ p-& gt;ShowWindow(nRef?SW _ HIDE:SW _ SHOW);

nref++;

_ nRef = nRef

}

void Initial(_DATA数据类型,CRect rect,CWnd* pWnd)

{

_ p =新DLG(pWnd);

_ p-& gt;SetData(数据类型);

_ p-& gt;Create(_DLG::IDD,pWnd);

CRect rectX

GetWindowRect(_ p-& gt;GetSafeHwnd()、rectX);

int nWidth=rectX。width();

int nHeight=rectX。height();

rectX.left=rect.left+(rect。Width()-rectX。width())/2;

rectx . right = rectx . left+nWidth;

rectX.top=rect.top+(rect。height()-n height)/2;

rectx . bottom = rect . top+n height;

_ p-& gt;move window(rectX);

_ p-& gt;ShowWindow(nRef?SW _ HIDE:SW _ SHOW);

nref++;

}

_DLG *运算符-& gt;()

{

return _ p;

}

_ ThisType & ampoperator =(_ ThisType & amp;_t)

{

_ p = _ t. _ p

返回* this

}

void SaveData(int nWhich)

{

if(n which = = _ nRef-1 & amp;& amp哪一个!=-1)

{

_ p-& gt;SaveData();

}

}

};

我想做一个对话框的布局。我觉得太麻烦了,就写了这个东西,不是很有用,相当于智能指针。你会先看一看。