📜  C++ |构造函数|问题7

📅  最后修改于: 2021-05-26 00:47:55             🧑  作者: Mango

以下程序的输出是什么?

#include 
using namespace std;
  
class Point
{
    int x, y;
public:
   Point(const Point &p) { x = p.x; y = p.y; }
   int getX() { return x; }
   int getY() { return y; }
};
  
int main()
{
    Point p1;
    Point p2 = p1;
    cout << "x = " << p2.getX() << " y = " << p2.getY();
    return 0;
}

(A) x =垃圾值y =垃圾值
(B) x = 0 y = 0
(C)编译器错误答案: (C)
说明: “ Point p1;”行中存在编译器错误。 Point类没有没有任何参数的构造函数。如果我们编写任何构造函数,则编译器不会创建默认的构造函数。

这不是真的,也就是说,如果我们编写默认或参数化的构造函数,则编译器将创建一个副本构造函数。请参阅下一个问题。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。