您的位置:程序门 -> c/c++ -> c++ 语言



请教一个指针继承的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教一个指针继承的问题[已结贴,结贴人:peiyangpr]
发表于:2007-01-04 12:15:52 楼主
我有一个类:
class   a   (unsigned   char*   bufferin)
{
public:
    ...
    a(unsigned   char*   bufferin);
    void   func1();
protected:
    ...
    unsigned   char*   buffer;   //指针,指向一个全局的数组
}  
...
a::a(unsigned   char*   bufferin)
:bufffer(bufferin)
{
    ...
}

void   a::func1()
{
    unsigned   pos   =   0;
    unsigned   temp   =   *(buffer+pos);   //在这里没有错误
    ...
}

还有一个类b继承了a:
class   b   :   class   a
{
    ...
    void   func2();
    ...
}

b::b(unsigned   char*   bufferin)
:   a(bufferin)
{
    ...
}

void   b::func2()
{
    unsigned   pos   =   0;
    unsigned   temp   =   *(buffer+pos);  
//在这里就发生了错误。不知是为什么?又该如何处理呢?谢谢!
    ...
}
发表于:2007-01-04 12:57:321楼 得分:1
啥错?
发表于:2007-01-04 12:57:422楼 得分:2
错误是什么?
class   b   :   class   a
改成
class   b   :   public   class   a
试试。
发表于:2007-01-04 13:00:133楼 得分:1
class   a   (unsigned   char*   bufferin)   //这是什么?  
{
public:
    ...
    a(unsigned   char*   bufferin);
    void   func1();
protected:
    ...
    unsigned   char*   buffer;   //指针,指向一个全局的数组
}  
发表于:2007-01-04 13:01:324楼 得分:13
应该是你上面的语法问题,请检查看看哪里写错了
根据错误提示来查错
发表于:2007-01-04 13:15:475楼 得分:3
a::a(unsigned   char*   bufferin)
:bufffer(bufferin)
{
    ...
}
初始化类表正确!
所以下面正确
void   a::func1()
{
    unsigned   pos   =   0;
    unsigned   temp   =   *(buffer+pos);   //在这里没有错误
    ...
}

//   初始化列表错误:

b::b(unsigned   char*   bufferin)
:   a(bufferin)
{
    ...
}

所以
void   b::func2()
{
    unsigned   pos   =   0;
    unsigned   temp   =   *(buffer+pos);  
//在这里就发生了错误。不知是为什么?又该如何处理呢?谢谢!
    ...
}
发表于:2007-01-04 14:36:106楼 得分:0
1、class   b   :   public   class   a   (这个public是有的,忘敲上去了)

2、
//   初始化列表错误:    

b::b(unsigned   char*   bufferin)
:   a(bufferin)
初始化列表为什么是错的呢?

3、我的程序编译没有错,运行的时候有错,debug时发现buffer的首地址为0xcccccccc,出现unhandled   exception   int   test.exe   (其中test.exe为测试用的main函数)
请再指教,谢谢!
发表于:2007-01-04 15:59:437楼 得分:0
经检查,是我自己本人的语法错误,谢谢上面诸位兄弟:)


快速检索

最新资讯
热门点击