类和对象

Class and Objects

本文关键字:对象      更新时间:2023-10-16

假设我有两个类Class AClass B

class A {
    uint32 A_1;
    uint32 A_2;
    uint32 A_3;
    uint32 A_4;
} 

第一个问题:如何使uint_32 A_1, A_2, A_3, A_4类A的类成员对从类B创建的对象可见?

//从B类创建的对象如下:

Object_B = new Class B(); 

我让A类成员对B类可见的语法如下第一个问题:

Class A(Class B *);

第二个问题:如何通过我创建的对象Object_B访问A类的类成员(uint_32 A_1, A_2, A_3, A_4(?

下面是第二个问题的语法:

Object_B->A_1;

上面两个类的语法正确吗?

此外,请为我提供一些C++中的类、对象的好链接,以便我能深入阅读。

new A( B * bPointer);

告诉我们类型A的对象拥有指向类型B的指针。这绝不会把B和A联系起来。

事实上,如果这是一个设计良好的类,那么B不应该知道A。这让你的第二个问题变得毫无意义。所以你应该问的一个重要问题是,你为什么想要这段关系。A和B之间的语义关系是什么?

这是一本书吗?

从链接:http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr129.htm

受保护的成员(仅限C++(

受保护的非静态基类成员可以由从该基类派生的任何类的成员和朋友使用以下方法之一访问:

指向直接或间接派生类的指针对直接或间接派生类的引用直接或间接派生类的对象

如果一个类是从基类私有派生的,则所有受保护的基类成员成为派生类的私有成员。

如果在友元或派生类B的成员函数中引用基类a的受保护非静态成员x,则必须通过指向从a派生的类的指针、引用或对象来访问x。但是,如果访问x以创建指向成员的指针,则必须使用嵌套的名称说明符来限定x,该名称说明符命名派生类B。以下示例说明了这一点:

 class A {
  public:
  protected:
  int i;
  };

  class B : public A {
  friend void f(A*, B*);
  void g(A*);
  };
  void f(A* pa, B* pb) {
  //  pa->i = 1;
  pb->i = 2;
 //  int A::* point_i = &A::i;
 int A::* point_i2 = &B::i;
  }
void B::g(A* pa) {
//  pa->i = 1;
i = 2;
//  int A::* point_i = &A::i;
int A::* point_i2 = &B::i;
}
void h(A* pa, B* pb) {
//  pa->i = 1;
//  pb->i = 2;
}
int main() { }