C 大學基礎教程 11 10

2021-09-02 03:49:49 字數 2447 閱讀 6277

#ifndef string_h_

#define string_h_

#include using namespace std;

class string

bool operator

bool operator>(const string &right) const //寫內聯函式的時候忘記寫引數,!!!!!

bool operator<=(const string &right) const

bool operator>=(const string &right) const

char &operator(int);//過載,

char operator(int) const;

void operator()(int,char) const;//替換某個位置的元素

string operator()(int,int = 0) const;//擷取兩個數字位之間的字元

void setstring(const char *);//效用函式

private:

int length;//字串中字元個數

char *sptr;//指標sptr,指向代表字串的額動態記憶體分配 };

#endif

#include "string.h"

#include #include using namespace std;

istream &operator>>(istream &input,string &right)

ostream &operator<

const string &string::operator+=(const char *s)//兩字串相加

return sptr[number];

}char string::operator(int number) const

return sptr[number];

}string string::operator()(int index,int sublength) const//擷取兩個數字位之間的字元

void string::operator()(int number,char s) const//替換某個位置的元素

//_11_10_main.cpp

#include "string.h"

#include using namespace std;

int main()

cout << "str1 += str2 yields " << endl;

str1 += str2;

cout << "str1 = " << str1 << endl;

cout << "str1 += \" to you \" yields" << endl;

str1 += " to you";

cout << "str1 = " << str1 << endl;

cout << "the substring of str1 starting at \n"

<< "location 0 for 14 characters,str1(0,14), is:\n"

<< str1(0,14) << endl;//對應的函式部分有錯誤提示

cout << "the substring of str1 starting at \n"

<< "location 15,str1(3,15), is:\n"

<< str1(3,15) << endl;

string *sptr0 = new string(str1);

cout << "*sptr0 = " << *sptr0 << endl;

cout << "assigning *sptr0 to *sptr0" << endl;

*sptr0 = *sptr0;

cout << "*sptr0 = " << *sptr0 << endl;

*sptr0 = str2;//注意咯!!!!!

cout << "*sptr0 = " << *sptr0 << endl;

delete sptr0;//寫成這樣就會錯誤,delete sptr0;因為這是乙個指向物件的指標啊啊啊

C 大學基礎教程筆記 一

1.修改const物件的任何企圖在編譯時就會被發現,而不是等到執行期才導致錯誤。2.將變數和物件宣告為const可以提高效能,編譯器可以對常量提供某些相對變數來說不能提供的優化。3.對於const物件,c 編譯器不允許進行成員函式的呼叫,除非成員函式本身也宣告為const。4.要將函式指定為cons...

C 大學基礎教程 12 物件導向程式設計 繼承

佣金雇員類,薪水完全是銷售提成 ifndef x 先測試x是否被巨集定義過 define x 程式段 1 如果x沒有被巨集定義過,定義x,並編譯程式段 1 endif 程式段 2 如果x已經定義過了則編譯程式段2的語句,忽視 程式段 1。ifndef commision h define commi...

C 大學基礎教程 6 4多引數函式定義

include using std string 不可省略啊 using namespace std class gradebook include gradebook.h include 不寫的話就會出現未定義識別符號cout using namespace std gradebook grade...