关于类,请大侠指教

muzhi 2004-04-30 11:21:56
#ifndef CONTROL_H
#define CONTROL_H
#include "Cursor.h"

class CEdit : public CObject
{
protected:
const BYTE m_MaxLen; // 最大输入的范围
const BYTE m_MinLen; // 最小输入的范围
const bool m_bIsPas; // 是否加密显示
BYTE m_Maxcur; // 在框内最多显示的字符数量
BYTE m_Pos; // 光标所在的字符位,0开始
BYTE m_Start; // 第一个显示的字符位,0开始
bool m_bSet; // 修改标记
border m_Border;
CUrsor * Cursor; // 光标
virtual int ProKey(int); // 基本键处理
public:
bool auto_end;
friend class CUrsor; // 友元光标类
CEdit(string & Text,int x,int y,int w,int h,CWindow * WIN=NULL);
CEdit(string & Text,CRect & R,CWindow * WIN=NULL);
virtual ~CEdit();
virtual bool GetFocus();
virtual bool LoseFocus();
virtual void Paint();
virtual int KeyEdit(); // 编辑事件
virtual bool DoModify() // 修改事件
{ m_bSet = false; return true; }

};
#endif


#ifndef CURSOR_H_
#define CURSOR_H_

#include "Control.h"

class CEdit;
extern possys *allsys;

class CUrsor
{
protected:
BYTE cur; // 光标当前位置
bool visible; // 光标显示状态
CEdit * E_Handle; // 单行编辑框指针
public:
CUrsor(CEdit *Handle, BYTE Cur=0, bool Visible=false)
: E_Handle(Handle), cur(Cur), visible(Visible)
{ if(visible) Display(); }
/*** 移动光标 */
void Move(const int Cur)
{
// 超过文本范围判断
if(Cur >= 0 && Cur < E_Handle->m_Maxcur)
{
BYTE oldvisible = visible;
Remove();
cur = Cur;
if(oldvisible) Display();
}
}
};

void CUrsor::Display()
{
setfillstyle(SOLID_FILL, WHITE);
int loc = cur * 8;
int Y = E_Handle->m_iTop + (E_Handle->GetHeight() -16) /2 ;
bar(E_Handle->m_iLeft+loc+2,Y-1,E_Handle->m_iLeft + loc + 9 ,Y + 17);
if(E_Handle->m_Start + cur < E_Handle->m_sText.length())
{
char ch[2] = { 0, 0 };
if(E_Handle->m_bIsPas) ch[0] = '*';
else
ch[0] = E_Handle->m_sText.get_at(E_Handle->m_Start+cur);
allsys->hzk.outtext(E_Handle->m_iLeft + loc + 2,Y,E_Handle-m_Color,ch);
}
visible = true;
}
#endif


错误显示:
Error:Cursor.h(31,3):'m_Maxcur' is not a member of 'CEdit'
Error:Cursor.h(77,26):'m_iTop' is not a member of 'CEdit'
Error:Cursor.h(77,50):'GetHeight' is not a member of 'CEdit'
Error:Cursor.h(79,23):'m_iLeft' is not a member of 'CEdit'
Error:Cursor.h(79,58):'m_iLeft' is not a member of 'CEdit'
Error:Cursor.h(81,22):'m_Start' is not a member of 'CEdit'
Error:Cursor.h(81,48):'m_sText' is not a member of 'CEdit'
Error:Cursor.h(84,25):'m_bIsPas' is not a member of 'CEdit'
Error:Cursor.h(87,29):'m_sText' is not a member of 'CEdit'
Error:Cursor.h(87,54):'m_Start' is not a member of 'CEdit'
Error:Cursor.h(89,40):'m_iLeft' is not a member of 'CEdit'
Error:Cursor.h(89,71):'m_Color' is not a member of 'CEdit'
Warn :Cursor.h(93,2):'loc' is assigned a value that is never used


请问怎么解决,是哪里的问题,编译环境borland c++5.0
...全文
53 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzhi 2004-05-04
  • 打赏
  • 举报
回复
CWindow是另一个类,CTitle是它的内部类如下形式
class CWindow
{
class CTitle
{
public:
string t_Text;
UINT t_Height;
align t_align;
UINT t_Txtclr; // 文本色
UINT t_Txtbkclr; // 背景色
CTitle(string &Text,UINT Height=20,align Align=CENTER,UINT
Tclr=BLACK,UINTBclr=WHITE)
: t_Height(Height), t_align(Align), t_Txtclr(Tclr), t_Txtbkclr(Bclr)
{ t_Text = Text;}
};
CTitle * m_Title;
void SetTitleName(stirng & Text){m_Title->t_Text=Text;} //CWindow.h(37,28)
};

Error:CWindow.h(37,28):) expected
iamfred 2004-05-02
  • 打赏
  • 举报
回复
你这个写的很乱,毛病也多,是从别的什么地方整来的~~楼主还是好好看看书再说吧
zouxueping 2004-05-02
  • 打赏
  • 举报
回复
CWindow.h又是哪来的,系统文件吗
flyelf 2004-04-30
  • 打赏
  • 举报
回复
把这些变量改为public
muzhi 2004-04-30
  • 打赏
  • 举报
回复
楼上的CObject和CEdit在同一个文件中定义的,只是没把贴出来
vcchunhong 2004-04-30
  • 打赏
  • 举报
回复
你在继承的时候出现了错误
class CEdit : public CObject
在这之前你没有向系统声明CObject这样一个类
所以它就不懂
所以你应该改成
class CObject;
class CEdit : public CObject
{
//.....................
};
这样就可以减少很多错误了~

muzhi 2004-04-30
  • 打赏
  • 举报
回复
另有两问请帮与解决
double GetNumber() { return atof(m_sText.c_str()); }
错误显示
Error:CONTROL.H(53,3):Structure required on left side of . or .*


class CTitle
{
public:
string t_Text;
UINT t_Height;
align t_align;
UINT t_Txtclr; // 文本色
UINT t_Txtbkclr; // 背景色
CTitle(string &Text,UINT Height=20,align Align=CENTER,UINT Tclr=BLACK,UINTBclr=WHITE)
: t_Height(Height), t_align(Align), t_Txtclr(Tclr), t_Txtbkclr(Bclr)
{ t_Text = Text;}
};

CTitle * m_Title;
void SetTitleName(stirng & Text){m_Title->t_Text=Text;}

Error:CWindow.h(37,28):) expected
yangliuseu 2004-04-30
  • 打赏
  • 举报
回复
同意 zouxueping(阿平)
zouxueping 2004-04-30
  • 打赏
  • 举报
回复
你这还有一个错误,就是两个文件互相包含了,都不用包含对方,加一句类声明就行了。
zouxueping 2004-04-30
  • 打赏
  • 举报
回复
最好给CEDIT类写一个函数取得你需要的变量的值,在类外直接操作一个对象的数据有违面向对象的封装思想。
muzhi 2004-04-30
  • 打赏
  • 举报
回复
楼上的将所有变量改成public后情况还是一样
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

64,637

社区成员

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

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