C 學習之運算子過載在專案開發中的應用

2021-09-28 00:18:45 字數 1961 閱讀 8035

建構函式要求:

mystring a;

mystring a("dasfa");

mystring b = a;常用的操作符: << >> != == > < =

c語言中,沒有字串這種型別,是通過陣列來模擬字串;c++中我們來設計乙個字串 ,以零結尾的字串

mystring.h

#include

using

namespace std;

class

mystring

;

mystring.cpp

#include

"mystring.h"

// <<

ostream&

operator

<<

(ostream &out,mystring &s)

//構造析構

//空串

mystring::

mystring

(int len)

else

}//s2("s2");

mystring::

mystring

(const

char

*p)else

}//copy建構函式 s3 = s2

mystring::

mystring

(mystring const

&s)//析構

mystring::

~mystring()

}//重寫 =

//s4 = s2

mystring& mystring::

operator=(

const mystring &s)

//2 根據s2分配記憶體

m_len = s.m_len;

m_p =

newchar

[m_len +1]

;strcpy

(m_p,s.m_p)

;return

*this;}

//s4 = "s444"

mystring& mystring::

operator=(

char

*p)//2 根據p分配記憶體

if(p ==

null

)else

return

*this;}

//重寫

char

& mystring::

operator

(int index)

//重寫==

bool

operator==(

const mystring& s)

return

strcmp

(m_p,s.m_p);}

//重寫!=

bool

operator!=(

char

*p)else

}else

else

}return

false

;}

mystringtest.cpp

#include

using

namespace std;

#include

"mystring.h"

void

main01()

//過載 == !=

void

main02()

else

//bool operator==(const mystring& s)

//測試!=

if(s3 != s2)

else

//bool operator!=(char *p);

system

("pause");

}

c 學習之運算子過載

今天這篇部落格 寫的是運算子的過載,這裡單純的寫了 號的運算子的過載,主要就是為了在以後需要的時候能夠找到對應的資料,還有就是通過作用域解析運算子來返回我們通過返回乙個物件 這裡有些運算子是不能載入的,有些運算子是只能通過成員函式來載入,以下截圖來自c primer plus 這段 寫的是乙個複數的...

C 學習之 運算子過載

要過載運算子,需要使用被稱為運算子函式的特殊函式形式,運算子函式的格式如下 operatorop atgument list 例如,operator 過載 運算子,operator 過載 運算子。op必須是有效的c 運算子,不能虛構乙個新的運算子 乙個運算子過載示例 time time operat...

C 運算子過載之過載單目運算子

單目運算子只有乙個運算元,但是其過載方法類似於雙目運算子,在這裡以過載單目運算子 為例,介紹單目運算子的過載 注意 和 運算子有兩種使用方式,前置自增運算子和後置自增運算子,它們的作用是不一樣的,為了區分他們,c 約定,在自增 自減 運算子過載函式中,增加乙個int型別的形參,就是後置自增 自減 運...