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 ...