有以下程序: #include <iostream> #include <cmath> using namespace std; class Distance; class point { public: friend class Distance; Point(int a,int B) { x=a; Y=b; } void Print() { cout<<"X= "<<X<<end1; cout<<"Y= "<<Y<<end1; } private: float X,Y; }; class Distance { public: float Dis(Point &p,Point &q); }; float Distance :: Dis(Point &p,Point &q) { float result; result=sqrt((p.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y)); cout<<result<<end1; retUrn result; } int main() { Point p(10,10),q(10,30); Distance d; d.Dis(p,q); return 0; } 运行后的输出结果是( )。
A: 10
B: 30
C: 0
D: 20
A: 10
B: 30
C: 0
D: 20
举一反三
- 下面为一个点类,重载了负号运算符,将原来点改为其关于原点的对称点。 请填空补充完整程序。 #include [iostream.h][br][/br] class Point{ private: float x; float y; public: Point(){ x = 0; y = 0; } Point(float a, float b){ x = a; y = b; } // 显示坐标 void display() { cout << "X: " << x << " Y:" << y <<endl; } // 重载负运算符 -,取对称点 friend Point operator-(Point a) { Point r; (1) ; (2) ; return r; } }; void main() { Point p1(5, 6); ; // 取对称点 p1.display(); //p1中的x和y值分别为-5和-6 }
- 若有定义int x, *p ; float y , *q ; 则下面赋值语句正确的是______。 A: p=&x ; B: p=&y ; C: q=&x ; D: q = p ;
- 有以下程序 #include void fun( int *a,int *b) {int *c; c=a;a=b;b=c; } main() {int x=3,y= 5 ,*P=&x,*q=&y; fun(p,q);printf(“%d,%d,”,*p,*q); fun(&x,&y);printf(“%d,%d\n”,*p,*q); } 程序运行后的输出结果是
- 下面程序输出的结果是( )。 #include<iostream> using namespace std; class A int X; public: A(int x):x(++x) ~A()cout<<x; ; class B:public A int y; public: B(int y):A(y),y(y) ~B()cout<<y;; ; void main() B b(3); A: 34 B: 43 C: 33 D: 44
- 中国大学MOOC: 有以下类定义class Point {public: Point(int x = 0, int y = 0) { _.x = x; _.y = y; } void Move(int xOff, int yOff) { _x += xOff; _.y += yOff; } void Print() const { cout << ( << _x << , << _y << ) << endl; }private: int _x, _y;};下列语句中会发生编译错误的是