关于抽象类的疑问

zero_226 2008-04-10 11:00:41
问一下抽象类的成员函数问题,我的抽象类里基本上都是虚函数,然后我定义了一个非虚函数,结果编译后出错说是这个函数不是类的成员,可是我明明在类里定义这个函数了阿,请问为什么?
贴出一部分代码:
.H文件
/*Base.h*/
#ifndef BASE_H
#define BASE_H

#include "windows.h"

class Base {
public:
//每个算法的初始化函数
virtual void Initialize() = 0;
//每个算法的Draw函数
virtual void Draw() = 0;
//设置窗口句柄
static void SetWnd(HWND hwnd) { _hwnd = hwnd; }
//设置设备句柄
static void SetDC(HDC hdc) { _hdc = hdc; }
//得到设备句柄
static HDC getDC() { return _hdc; }
//得到窗口句柄
static HWND getWND() { return _hwnd; }
//重绘函数
static void redraw() {
RedrawWindow(_hwnd, NULL, NULL,RDW_INTERNALPAINT | RDW_INVALIDATE );
//设置字体函数
void SetFont(HDC hdc);
}


private:
static HDC _hdc; //设备句柄
static HWND _hwnd; //窗口句柄

};

#endif


.CPP文件
/*Base.cpp*/
#include "Base.h"

HWND Base::_hwnd = 0;
HDC Base::_hdc = 0;

void Base::SetFont(HDC hdc) {
HFONT hFont;
HFONT hOldFont;
LOGFONT logfont;



//初始化logfont各个元素
memset(&logfont, 0, sizeof(logfont));
//确定字库的字符平均宽度,高度
logfont.lfHeight = 50;
logfont.lfWeight = 70;
logfont.lfWidth = 30;
logfont.lfUnderline = TRUE;

////创建一种逻辑字库
hFont = CreateFontIndirect(&logfont);
hOldFont = (HFONT)SelectObject(hdc, hFont);
}
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zero_226 2008-04-10
  • 打赏
  • 举报
回复
多谢二位
zero_226 2008-04-10
  • 打赏
  • 举报
回复
多谢二位
  • 打赏
  • 举报
回复
这段看着咋真别扭了,
括号是不是括错了

static void redraw() {
RedrawWindow(_hwnd, NULL, NULL,RDW_INTERNALPAINT ¦ RDW_INVALIDATE );
//设置字体函数
void SetFont(HDC hdc);
}
Treazy 2008-04-10
  • 打赏
  • 举报
回复

//重绘函数
static void redraw() {
RedrawWindow(_hwnd, NULL, NULL,RDW_INTERNALPAINT ¦ RDW_INVALIDATE );
//设置字体函数
void SetFont(HDC hdc);
}

写错了

//重绘函数
static void redraw() {
RedrawWindow(_hwnd, NULL, NULL,RDW_INTERNALPAINT ¦ RDW_INVALIDATE ); }
//设置字体函数
void SetFont(HDC hdc);


64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧