2017C 基礎 網課筆記(73到76)

2021-08-19 13:47:01 字數 2404 閱讀 5481

73到75 是寫乙個類

分為三部分,第一部分mystring.h

#ifndef mystring_h

#define mystring_h

#include #include using namespace std;

class mystring

;#endif // mystring_h

第二部分是mystring. cpp

#include "mystring.h"

#include #include using namespace std;

mystring::mystring()

mystring::~mystring()

//dtor

}mystring::mystring(int len) //建立乙個長度是len的string物件

mystring::mystring(const char * str)

else

}//拷貝構造是初始化時候被呼叫的

mystring::mystring(const mystring & another)

ostream& operator<

//2 通過cin新增新的字串

char temp_str[4096]=;

cin>>temp_str;

int len = strlen(temp_str);

s.str = new char[len+1];

strcpy(s.str, temp_str);

s.len = len;

return is;

}//過載操作符

char & mystring::operator(int index)

//過載操作符=

mystring& mystring::operator=(const mystring &another)

this->len = another.len;

this->str = new char[this->len+1];

strcpy(this->str,another.str);

return *this;

}//過載操作符+

mystring operator+(const mystring &s1,const mystring &s2)

private:

int a;

string name;

};int main()

{ mystring s1 = "123";

mystring s2(s1);

mystring s3 = "abc";

cout<

然後最後是執行結果

mystring::mystring(const char * str)...

mystring::mystring(const mystring & another)...

mystring::mystring(const char * str)...

ostream& operator<

123ostream& operator<

123---------------------------------------

char & mystring::operator(int index)...

ostream& operator<

1x3mystring& mystring::operator=(const mystring &another)...

ostream& operator<

abc---------------------------------------

mystring::mystring(const char * str)...

after + operator

mystring mystring::operator+(const mystring &another)...

mystring::mystring()...

ostream& operator<

abcedf

abcedf執行了析構函式

edf執行了析構函式

abc執行了析構函式

123執行了析構函式

abc執行了析構函式

七十六. 今日回顧和作業

解答:

顯然操作符《的過載,不能是成員函式,只能是全域性函式,以友元方式被宣告,否則含義不對

||和&&符號的操作符過載,問題在於失去了其本身自帶的「短路特性」,可能引起其他問題。

c++中的string類,當然不是普通資料型別,它是作為乙個複雜型別存在的。。

2017C 基礎 網課筆記(5到9)

五.三目運算子的加強 c 中,三目運算子可以作為左值使用,而在c中,三目運算子只可當作右值,不可當作左值。include using namespace std void test1 int a 10 int b 20 int c 0 c a六.const的增強 關於const不同位置的修飾含義 當...

2017C 基礎 網課筆記(10到14)

十.引用的本質 1.引用所占用的大小,跟指標是相等的。2.常量需要初始化,引用也要初始化,引用可能本質上是一常量 十一.常量指標 對於 int array 10 array是位於 常量區 的。而int r a 而言,r也是位於常量區,它的 r指向a 十二.引用作為函式的返回值 include usi...

2017C 基礎 網課筆記(40到45)

四十.建構函式的初始化列表1 include using namespace std class a abcd int geta private int a int b int c class mye mytest int a,int b mytest int array p int malloc ...