在另一个中声明一个类成员

时间:2012-03-27 13:34:18

标签: c++ objective-c class declaration

我正在尝试在另一个类的类中拥有一个成员: 我有一个博客课和朋友班以及一个blog_pointer课 我尝试了下面的代码:

friends :: blog_pointer *  blogFriend;

在类的功能中是否有类似原型的东西? 除了构造函数或析构函数之外的编译器。

2 个答案:

答案 0 :(得分:2)

您可以像这样转发声明或“原型化”类:

class B;

class A {
  public:
    B b;
};

class B {
  public:
    A a;
};

答案 1 :(得分:0)

friend关键字仅授予对其他类私有数据成员的访问权限。您不能在朋友类中声明其他类的其他成员。

Rectangle.h

class Rectangle {
  int width, height;
 public:
  int area ()
    {return (width * height);}
  void convert (CSquare a);
  };

Square.h

class Square {
 private:
   int side;
public:
  void set_side (int a)
     {side=a;}
friend class Rectangle;
};

Rectangle.cc

void Rectangle::convert (Square a) {
width = a.side;
height = a.side;
}

main.cc

int main () {
 Square sqr;
 Rectangle rect;
 sqr.set_side(4);
 rect.convert(sqr);

}

没有您的朋友关键字,您可以在转换方法中访问a.side。

但我不确定你在问什么?如果您只想使用其他课程,可以执行以下操作。

NextSquare.h

class NextSquare {
 private:
   int side;
public:
  void set_side (int a)
     {side=a;}
friend class Rectangle;
class Rectangle* aRecInASquare;
};

您现在可以在NextSquare中访问Rectangle的数据