首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个指针继承的有关问题

2012-03-31 
请教一个指针继承的问题我有一个类:classA(unsignedchar*bufferIn){public:...A(unsignedchar*bufferIn)v

请教一个指针继承的问题
我有一个类:
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);  
//在这里就发生了错误。不知是为什么?又该如何处理呢?谢谢!
    ...
}

[解决办法]
啥错?
[解决办法]
错误是什么?
class B : class A
改成
class B : public class A
试试。
[解决办法]
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::B(unsigned char* bufferIn)
: A(bufferIn)
{
...
}

所以
void B::func2()
{
unsigned pos = 0;
unsigned temp = *(buffer+pos);
//在这里就发生了错误。不知是为什么?又该如何处理呢?谢谢!
...
}

热点排行