建構函式要求:
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型別的形參,就是後置自增 自減 運...