C 運算子過載練習 編寫ipv4類

2021-09-24 05:35:13 字數 2359 閱讀 5290

沒什麼,好久沒玩 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關...