这是代码:
#include<iostream>
using namespace std;
class Rectangle
{
private :
int _width;
int _height;
public :
Rectangle()
: _width{},_height{}
{}
Rectangle(int initial_w, int initial_h)
: _width{initial_w}, _height{initial_h}
{}
int get_width(){return _width;}
};
int main()
{
Rectangle a;
Rectangle(2,3);
cout<<a.get_width()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它返回 0,我认为它应该是 2。请帮忙!!!!!!
小智 7
在您的 main 方法中,您创建了一个Rectangle a;调用您的默认构造函数的Rectangle()。然后在下一行中,您使用 来创建一个临时元素Rectangle(2,3);,它调用您的初始化构造函数Rectangle(int initial_w, int initial_h),但它会立即被丢弃,因为您尚未将其分配给变量。最后,输出默认构造的变量 a。
看来你想要实现的是:
int main()
{
Rectangle a(2, 3);
cout << a.get_width() << endl;
}
Run Code Online (Sandbox Code Playgroud)