⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 casado.txt

📁 用C++编的小程序
💻 TXT
字号:
Static Packet Construction with C++ Templates        
by Martin Casado    

Listing 1:

struct ipaddr
{
    uint32_t addr;
    // --- Constructors ---
    ipaddr();
    ipaddr(const ipaddr&);
    ipaddr(const std::string&);
    // --- String Representation --
    char* toString() const;
    // --- Binary Operators ---
    ipaddr operator ~ () const;
    ipaddr operator & (const ipaddr&) const;
    ipaddr operator | (const ipaddr&) const;
    // --- Mathematical operators ---
    ipaddr operator ++ ();
    ipaddr operator -- ();
    // --- Assignment Operator ---
    ipaddr& operator = (const ipaddr&);
    ipaddr& operator = (const std::string &);
    // --- Comparison Operators ---
    bool operator == (const ipaddr&) const;
    bool operator != (const ipaddr&) const;
    bool operator <  (const ipaddr&) const;
    bool operator <= (const ipaddr&) const;
    bool operator >  (const ipaddr&) const;
    bool operator >= (const ipaddr&) const;
}; // -- struct ipaddr
 

Listing 2:

ipaddr& addr("10.0.0.1");
ipaddr& mask("255.255.255.0");
cout << "Subnet:" <<  (addr & mask).toString() << endl;
cout << "Broadcast:" <<  (addr | (~ mask)).toString() << endl;
// -- loop over class C and print out each address
for ( ipaddr temp = (addr & mask) ; temp <=  (addr | (~mask)) ; temp++ )
{ cout << temp.toString() << endl; }





1


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -