沒什麼,好久沒玩 c++ 了。打算複習一下,編寫個 ipv4 位址類娛樂一下。
ipv4 位址是乙個32位的數字,通常使用十進位制和點.
進行格式化,比如192.168.1.1
。每乙個部分都是乙個8位元數,範圍從0到255。可以使用4個unsigned char
儲存位址值。 為了能夠直接從控制台輸入和輸出格式化的 ip 位址,過載operator>>
和operator<<
。
#include
#include
#include
class
ipv4
}constexpr
ipv4
(unsigned
char
const a,
unsigned
char
const b,
unsigned
char
const c,
unsigned
char
const d)
: data
}explicit
constexpr
ipv4
(unsigned
long a)
: data
}ipv4
(ipv4 const
&other)
noexcept
:data
(other.data)
ipv4&
operator
=(ipv4 const
&other)
noexcept
std::string to_string()
const
constexpr
unsigned
long
to_ulong()
const
noexcept
friend std::ostream&
operator
<<
(std::ostream& os,
const ipv4& a)
friend std::istream&
operator
>>
(std::istream& is, ipv4& a)
ipv4&
operator++(
) ipv4 operator++(
int)
friend
bool
operator
==(ipv4 const
&a1, ipv4 const
&a2)
noexcept
friend
bool
operator
!=(ipv4 const
&a1, ipv4 const
&a2)
noexcept
friend
bool
operator
<
(ipv4 const
&a1, ipv4 const
&a2)
noexcept
friend
bool
operator
>
(ipv4 const
&a1, ipv4 const
&a2)
noexcept
friend
bool
operator
<=
(ipv4 const
&a1, ipv4 const
&a2)
noexcept
friend
bool
operator
>=
(ipv4 const
&a1, ipv4 const
&a2)
noexcept};
intmain()
}else
}
192.168.0.1
0.0.0.0
[input]192.168.0.10
192.168.0.10
input range: [input]192.168.0.2 192.168.0.7
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7
沒什麼,好像挺簡單的。這個例子用來複習一下運算子過載是個很不錯的。通過運算子過載,列舉給定範圍的 ip 位址非常地自然。 c 運算子過載練習
利用運算子過載實現自己的mystring類 mystring.h pragma once include using namespace std class mystring mystring.cpp define crt secure no warnings include mystring.h ...
C 運算子過載練習
總時間限制 1000ms 記憶體限制 65536kb 在此處補充你的 描述 程式填空 include using namespace std class myint int inc int n int main return 0 輸入 多組資料,每組一行,整數n 輸出對每組資料,輸出一行,包括兩個整...
C 運算子過載練習
總時間限制 1000ms 記憶體限制 65536kb 在此處補充你的 描述 補足程式使得其輸出結果是 include include using namespace std struct a a int n n n int main 輸入無輸出 樣例輸入 無樣例輸出 40注意實際上a帶有const關...