1、array類
蕉城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
(1)、代碼如下:
#include<iostream>
using namespace std;
class Array{
public:
Array(int count);
Array(const Array &t);
~Array();
public:
void setData(int i, int data);
int getData(int i);
int length();
private:
int len;
int *p;
};
Array::Array(int count){
len = count;
p = new int[len];
}
//有指針,的進(jìn)行深拷貝;
Array::Array(const Array &t){
len = t.len;
p = new int[len];
for(int i = 0; i < t.len; i++){
p[i] = t.p[i];
}
}
Array::~Array(){
if(p){
delete []p;
p = NULL;
}
}
void Array::setData(int i, int data){
p[i] = data;
}
int Array::getData(int i){
return p[i];
}
int Array::length(){
return len;
}
int main(void){
Array array(10);
int i;
for(i = 0; i < array.length(); i++){
array.setData(i, i);
}
for(i = 0; i < array.length(); i++){
cout<<array.getData(i)<<" ";
}
cout<<endl;
Array array1 = array;
for(i = 0; i < array1.length(); i++){
cout<<array1.getData(i)<<" ";
}
cout<<endl;
return 0;
}(2)、運(yùn)行結(jié)果:

2、string類
(1)、代碼如下:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
class MyString{
public:
friend ostream& operator<<(ostream &out, const MyString &s1);
friend istream& operator>>(istream &in, MyString &s2);
MyString(int len = 0){ //默認(rèn)參數(shù)看我們是否自己開(kāi)辟大小的空間;
if(len != 0){
m_len = len;
m_p = new char[m_len+1];
memset(m_p, 0, m_len);
}else{
m_len = 0;
m_p = new char[m_len+1];
strcpy(m_p, "");
}
}
MyString(const char *p){
if(p == NULL){
m_len = 0;
m_p = new char[m_len+1];
strcpy(m_p, "");
}else{
m_len = strlen(p);
m_p = new char[m_len+1];
strcpy(m_p, p);
}
}
MyString(const MyString &s){
m_len = s.m_len;
m_p = new char[m_len+1];
strcpy(m_p, s.m_p);
}
MyString& operator=(const MyString &t){
if(m_p){
delete []m_p;
m_p = NULL;
m_len = 0;
}
m_len = t.m_len;
m_p = new char[m_len+1];
strcpy(m_p, t.m_p);
return *this;
}
~MyString(){
if(m_p) {
delete []m_p;
m_p = NULL;
m_len = 0;
}
}
public:
MyString operator=(const char *p){
if(m_p){
delete []m_p;
m_p = NULL;
m_len = 0;
}
if(p == NULL){
m_len = 0;
m_p = new char[m_len+1];
strcpy(m_p, "");
}else{
m_len = strlen(p);
m_p = new char[m_len+1];
strcpy(m_p, p);
}
return *this;
}
char& operator[](int index){
return m_p[index];
}
bool operator==(const char *p)const{ //判斷與字符串是否相等,看長(zhǎng)度和里面的內(nèi)容是否相等!!!
if(p == NULL){
if(m_len == 0){
return true;
}else{
return false;
}
}else{
if(m_len == strlen(p)){
return !strcmp(m_p, p);
}else{
return false;
}
}
}
bool operator==(const MyString &s)const{
if(m_len != s.m_len){
return false;
}
return !strcmp(m_p, s.m_p);
}
bool operator!=(const char *p)const{
return !(*this == p);
}
bool operator!=(const MyString &s)const{
return !(*this == s);
}
int operator<(const char *p)const{
return strcmp(m_p, p);
}
int operator<(const MyString &s)const{
return strcmp(m_p, s.m_p);
}
int operator>(const char *p)const{
return strcmp(p, m_p);
}
int operator>(const MyString &s)const{
return strcmp(s.m_p, m_p);
}
//怎么樣把類的指針露出來(lái).
public:
char *c_str(){
return m_p;
}
const char *c_str2(){
return m_p;
}
int length(){
return m_len;
}
private:
int m_len;
char *m_p;
};
ostream& operator<<(ostream &out, const MyString &s1){
out<<s1.m_p;
return out;
}
istream& operator>>(istream &in, MyString &s2){
in>>s2.m_p;
return in;
}
int main(void){
MyString s1;
MyString s2("s2");
MyString s3 = s2;
MyString s4 = "s444444444444";
s4 = "s22222222222";
s4 = s2;
s4[1] = '3';
printf("%c\n", s4[1]); //測(cè)試[]改變值了嗎?
cout<<s4<<endl;
if(s2 == "s2"){
cout<<"相等"<<endl;
}else{
cout<<"不相等"<<endl;
}
s3 = "aaa";
int flag = (s3 < "bbb");
if(flag < 0){
cout<<"s3小于bbb"<<endl;
}else{
cout<<"s3大于bbb"<<endl;
}
s3 = "adasf";
strcpy(s3.c_str(), "sga");
cout<<s3<<endl;
MyString s9(100);//默認(rèn)輸入要開(kāi)辟字符串的空間大小;
cout<<"請(qǐng)輸入一個(gè)數(shù)字 :";
cin>>s9;
cout<<s9<<endl;
return 0;
}(2)、運(yùn)行結(jié)果:

網(wǎng)站題目:array和string的運(yùn)算符重載
地址分享:http://www.chinadenli.net/article40/igjiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、企業(yè)建站、微信小程序、商城網(wǎng)站、域名注冊(cè)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)