作用域的问题求教 我封装了一个类CCar,其中使用了许多的其他类,比如CDoor,CBase,我的问题是:我不想把后面的这些被使用的类暴露出来,只是提供一个简单的CCar,给使用者,是否可以做到?我该怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把许多的其他类,比如CDoor,CBase做成dll。 将这些类作成DLL,然后仅仅暴露CCar,也就是将CCar导出来 谢谢两位指点把CDoor,CBase等类(都是内嵌类)封装在DLL中,又有问题了,怎么让发布给其他使用者的CCar类中不出现CDoor,CBase等类的定义呀,比较难办 你使用一个函数,用这个函数来生成CCar类,而且只生成CCar类,将这个函数作为DLL对外提供的接口就可以了 作成COM的形式,微软的好多东西这样做的,好多东西也没有暴露给我们啊:) to linestyle(linestyle) :好点子,我正有此意,是否就是COM里面的“嵌套”“包容”之类的东东呢to windcsn(向所有的朋友学习!) :这个估计是我修改的方向:)毕竟我对COM不是很熟练,还只是停留在纸上谈兵的阶段再次表示对回帖的三位朋友的感谢 也可以做成如下的形式:*** car.h ***typedef class CDoor* DOOR;typedef class CBase* BASE;class CCar{public: ...private: DOOR m_pDoor; BASE m_pBase;};*** CAR.CPP ***class CDoor{public: ...};class CBase{public: ...};CCar::CCar(){ m_pBase = new CBase; m_pDoor = new CDoor; ...}CCar::~CCar(){ delete m_pBase; delete m_pDoor;} 看到这里我想到,其实更简单就是:在头文件中先使用:class CDoor;class CBase;来声民,然后在CCar中使用是没有问题的在CPP文件中包含指定的头文件 我不想把Class CDoor,Class CBase暴露出来,所以... 高手进,这样的选区是咋做滴 牛哥帮忙!内存泄露,delete出错! mediaplayer控件无法显示图像的问题 谁有《vc++网络编程》电子版 大家帮我出出注意,如果楼上的空调外机声音比较响该怎么办! 如何得到本机的IP地址 我有两个方案改变控件句柄,但是只有方案二成功了,方案一失败了,请问原因 右键菜单的一个小问题 VC6 IDE VC编程求助,谢谢啦,帮忙看看这个程序,我是菜鸟 问下网络高手关于QQ登入服务器的问题请教 关于RichEditCtrl 的怪问题
好点子,我正有此意,是否就是COM里面的“嵌套”“包容”之类的东东呢to windcsn(向所有的朋友学习!) :
这个估计是我修改的方向:)毕竟我对COM不是很熟练,还只是停留在纸上谈兵的阶段再次表示对回帖的三位朋友的感谢
typedef class CDoor* DOOR;
typedef class CBase* BASE;class CCar
{
public:
...
private:
DOOR m_pDoor;
BASE m_pBase;
};*** CAR.CPP ***
class CDoor
{
public:
...
};class CBase
{
public:
...
};CCar::CCar()
{
m_pBase = new CBase;
m_pDoor = new CDoor;
...
}CCar::~CCar()
{
delete m_pBase;
delete m_pDoor;
}
在头文件中先使用:
class CDoor;
class CBase;
来声民,然后在CCar中使用是没有问题的
在CPP文件中包含指定的头文件