以下、ある本のサンプルコードの一部を抜粋したものなのですが、
疑問があります。
C++
1class ipv4 2{ 3 std::array<unsigned char, 4> data; 4public: 5 constexpr ipv4() :data{ {0} } {} 6 constexpr ipv4(unsigned char const a, unsigned char const b,unsigned char const c, unsigned char const d) : 7 data{ {a,b,c,d} } {} 8} 9int main() 10{ 11 ipv4 a(168, 192, 0, 1); 12 std::cout << a << std::endl; 13}
上記のコードの
ipv4 a(168, 192, 0, 1);
の部分なのですが、引数がint型であるのに対して、
クラスのコンストラクタはunsigned char const形で受け取っています。
constexpr ipv4(unsigned char const a, unsigned char const b,unsigned char const c, unsigned char const d) :
型が違うので初期化できないと考えたのですが、なぜエラーにならないのでしょう?
自動でcastされるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 03:39