指针的初始化,该怎么处理

指针的初始化
在类中这样声明
struct b;
b *d ;
在构造函数中这样初始化
struct b
{
int signa,signb,signc;
int c[5];
b()
{
for(int i = 0; i < 5;i++)
c[i] = i + 1;
}
};
d = new b[64];//这里出了问题 说a value of type " b*"cannnot assigned to an entity of type "dian::b*"这是为什么 (dian是类名字)

------解决方案--------------------
楼主可否把你完整的代码贴出来?另外贴代码要贴在【code=C/C++】和【/code】之间。看看回复框上面的插入源代码里就有。
------解决方案--------------------
dian::b* 这个确实奇怪,struct属于这个dian类?
------解决方案--------------------
命名空间的问题
试试
d = new dian::b[64];
------解决方案--------------------
struct b是嵌套在class dian中那,还是在class dian外部,如果在内部d 就dian::b*如果在外部就是b*
你代码贴的不清楚 是不是应该把代码声明到dian外那?
------解决方案--------------------
代码好乱呀是不是想这样呀
C/C++ code

#ifndef DIAN_H
#define DIAN_H

class dian
{
public:
  dian();
  void check();
private:
  int a[4];
  struct b
  {
    int signa,signb,signc;
    int c[5];
    b()
    {
      for(int i = 0; i < 5;i++)
        c[i] = i + 1;
    }
  };
  b *d ;
};
#endif

------解决方案--------------------
class dian
{
public:
dian();
void check();
private:
int a[4];
struct b; 这个是dian内部的struct b,如果你是要前置声明,把这句放到class dian之前去 
b *d ;
};
------解决方案--------------------
探讨

class dian
{
public:
dian();
void check();
private:
int a[4];
struct b; 这个是dian内部的struct b,如果你是要前置声明,把这句放到class dian之前去
b *d ;
};

------解决方案--------------------
探讨

引用:

class dian
{
public:
dian();
void check();
private:
int a[4];
struct b; 这个是dian内部的struct b,如果你是要前置声明,把这句放到class dian之前去
b *d ;
};

这里的b是一个嵌套类,而你cpp里又什么里一个一般类b,两个完全不同

------解决方案--------------------
定义嵌套类一般是基于这样的考虑:这两个类的耦合性很高所以就嵌套的一起了 要不就把struct b定义到类外部吧
------解决方案--------------------
在C++中struct和class关键字几乎没有差别的,唯一的差别就是struct中的字段默认是public的而class中的字段默认是private的 你用一个class的时候一定要把它定义到内部码 定义到外部是可以直接使用的因为他是全局的