以下の両方のコードを考慮してください。 1つはコンストラクタを使用して値を初期化し、1つは初期化しません。値を初期化するためにコンストラクタを使用する必要があるのはなぜですか?
コード#1
#include<iostream>
using namespace std;
class Rectangle
{
public:
int width;
int height;
};
int main()
{
Rectangle rect1{3,4};
cout<<"Width="<<rect1.width<<endl;
cout<<"Height="<<rect1.height<<endl;
return 0;
}
私が取得
幅= 3
高さ= 4
コード#2
#include<iostream>
using namespace std;
class Rectangle
{
public:
int width;
int height;
Rectangle(int a,int b)
{
width=a;
height=b;
}
};
int main()
{
Rectangle rect1(3,4);
cout<<"Width="<<rect1.width<<endl;
cout<<"Height="<<rect1.height<<endl;
return 0;
}
として出力を得ます同じ出力。 私の質問は簡単かもしれませんが、なぜ私は両方の場合で同じ出力を得ているときにコンストラクタを使用して迷惑です。 ありがとうございました
コンストラクタを使用する必要はありませんが、値をメンバーに割り当てる以外にも、コンストラクタが便利です。 –
メンバが_public_である限り、メンバがデフォルトコンストラクタブルでない場合はコンストラクタなしで初期化することができます – feareoc
メンバ初期化リストを使用してそれらを構築する必要があります – sp2danny