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