• 指向class的指针使用方法实例


    // pointer to classes example
    #include <iostream>
    using namespace std;
    
    class Rectangle {
      int width, height;
    public:
      Rectangle(int x, int y) : width(x), height(y) {}
      int area(void) { return width * height; }
    };
    
    
    int main() {
      Rectangle obj (3, 4);
      Rectangle * foo, * bar, * baz;
      foo = &obj;
      bar = new Rectangle (5, 6);
      baz = new Rectangle[2] { {2,5}, {3,6} };
      cout << "obj's area: " << obj.area() << '
    ';
      cout << "*foo's area: " << foo->area() << '
    ';
      cout << "*bar's area: " << bar->area() << '
    ';
      cout << "baz[0]'s area:" << baz[0].area() << '
    ';
      cout << "baz[1]'s area:" << baz[1].area() << '
    ';       
      delete bar;
      delete[] baz;
      return 0;
    }	
    

      运行结果:

    obj's area: 12
    *foo's area: 12
    *bar's area: 30
    baz[0]'s area:10
    baz[1]'s area:18
    

      指向class的指针。

    This example makes use of several operators to operate on objects and pointers (operators *&.->[]). They can be interpreted as:

    expressioncan be read as
    *x pointed to by x
    &x address of x
    x.y member y of object x
    x->y member y of object pointed to by x
    (*x).y member y of object pointed to by x (equivalent to the previous one)
    x[0] first object pointed to by x
    x[1] second object pointed to by x
    x[n] (n+1)th object pointed to by x


    Most of these expressions have been introduced in earlier chapters. Most notably, the chapter about arrays introduced the offset operator ([]) and the chapter about plain data structures introduced the arrow operator (->).

  • 相关阅读:
    HTTP客户端识别与Cookie机制
    javascript模式之模块模式
    js类式继承模式学习心得
    关于html自闭合标签要不要加空格和斜杠的问题?
    分享两件有趣的事情
    PS Web切图界面设置
    这是什么
    关于前后端分离我的理解
    模块化方案esl以及amd的依赖方式
    node 内存管理相关
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11074570.html
Copyright © 2020-2023  润新知