关于C++ Public的问题

classCMyButton:publicCButton{//Constructionpublic:CMyButton();//Attributespublic://Op... class CMyButton : public CButton
{
// Construction
public:
CMyButton();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMyButton)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
public:
CRect m_ClientRect; //用来保存按钮的客户矩形区
BOOL m_TimerOn; //标识计时器是否打开
UINT m_State; //按钮状态
CPoint m_Point; //保存当前鼠标位置
virtual ~CMyButton();
// Generated message map functions
protected:
//{{AFX_MSG(CMyButton)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
问题是:
1、这里面怎么反复出现这么多的public???每个public以及后面的代码分别有何不同呢?
2、virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); virtual void是虚函数的意思吗?
3、DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)是什么意思呢??
展开
 我来答
9404linxinfa
2014-04-18 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:102万
展开全部
类里面反复出现public其实是因为有时候不喜欢把所有变量或函数都堆一起,其实每个public都是一样的

不过注意,class CMyButton : public CButton,这里的public是共有继承的意思

virtual是虚函数的意思
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

你的CMyButton 类是共有继承CButton的,而DrawItem里有一个虚函数DrawItem,子类可以对父类的虚函数进行重写,如果不加virtual,则子类与父类同门的函数会导致父类同门函数被隐藏,注意,父类函数被隐藏跟父类函数被重写是不同的概念

DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)

是你要重写的函数,你用的是MFC吧,我很久没用MFC了
追问
MFC 我还有个问题哈 class CMyButton : public CButton
CButton是类的意思吗?这个类不需要新建是不?程序自带的一个类吧?和CMenu是一样的呗?我是新手
追答
CButton是MFC自己封装的类

你可以自己写类继承于它
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式