0

如何打印指向函数 print 中类类型的指针的值作为我尝试的地球,但我想知道如何打印指针指向的 x 和 y 的值。这段代码:

int main(){

#include<iostream>
using namespace std;
    class POINT { 
        public:
            POINT (){ } 
            POINT (int x, int y){ x_=x; y_=y;}
            int getX (){ return x_; } 
            int getY (){ return y_; }
            void setX (int x) { x_ = x; }
            void setY (int y) { y_ = y; }
        void print( ) { cout << "(" << x_ << ","<< y_ << ")";}
        void read( ) {cin>> x_; cin>>y_;}
        private:        
            int x_;
         int y_;
};  
 void print (   POINT * p1Ptr , POINT * p2ptr){
    POINT* x= p1Ptr; POINT*y=p2ptr;
    cout<<x<<y;
} 
int main(){

 POINT p1(3,2);
 POINT p2(6,6);
  POINT *p1Ptr=&p1;
    POINT *p2Ptr=&p2;
    double d=0.0;
     double *dPtr=&d;
     p1Ptr->getX();
     p2Ptr->getX();
     p1Ptr->getY();
     p2Ptr->getY();
     print ( &p1, &p2); 
    system ("pause");
    return 0;
}
4

2 回答 2

2

您想要cout << *x << *y;(或者cout << *p1Ptr << *p2ptr;实际上没有意义(双关语!)将指针复制到POINT函数内部)。

对不起,我以为有一个operator<<for POINT

您需要使用p1ptr->print(); p2ptr->print();您已经拥有的功能。

于 2013-10-05T07:53:28.520 回答
2

我不确定这就是你的意思,但是怎么样:

class POINT { 
public:
    // skipped some of your code...

    void print(std::ostream& os) const
                         // note ^^^^^ this is important
    {
        // and now you can print to any output stream, not just cout
        os << "(" << x_ << ","<< y_ << ")";
    }

    // skipped some of your code...
};

std::ostream& operator<<(std::ostream& os, const POINT& pt)
{
    pt.print(os);
    return os;
}

void print (POINT * p1Ptr , POINT * p2ptr){
    cout << *p1Ptr << *p2ptr;
}
于 2013-10-05T07:55:26.267 回答