我正在尝试在另一个类的类中拥有一个成员: 我有一个博客课和朋友班以及一个blog_pointer课 我尝试了下面的代码:
friends :: blog_pointer * blogFriend;
在类的功能中是否有类似原型的东西? 除了构造函数或析构函数之外的编译器。
答案 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的数据