Получить значение из члена класса, являющегося указателем - PullRequest
1 голос
/ 03 ноября 2011

С учетом следующего кода:

#include <iostream>
using namespace std;

class CRectangle {

  public:
    int *width, *height;
    CRectangle (int,int);
    ~CRectangle ();
    int area () {return (*width * *height);}
};

CRectangle::CRectangle (int a, int b) {
  width = new int;
  height = new int;
  *width = a;
  *height = b;
}

CRectangle::~CRectangle () {
  delete width;
  delete height;
}

int main () {
  CRectangle rect (3,4), rectb (5,6);
  cout << "rect area: " << rect.area() << endl;
  cout << "rectb area: " << rectb.area() << endl;

  CRectangle * p = new CRectangle(10,10);

  cout << "rect area: " << p->*height << endl;

  return 0;
}

как мне заставить работать последний оператор cout?

Ответы [ 2 ]

6 голосов
/ 03 ноября 2011

Переместить оператор разыменования. p->height относится к целочисленному указателю height. И затем помещая * перед этим, разыменовывается указатель int.

cout << "rect area: " << *p->height << endl;
0 голосов
/ 03 ноября 2011
cout << "rect area: " << *(p->height) << endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...