1樓:匿名使用者
for(int i=0;i 2樓:銜泥無珮 #include using namespace std; class string ~ string(); bool operator <(const string &a); friend ostream& operator<< return cin;}}; string ::string (int a) string:: string(char *p) else cout<<"unknown"< }string::~string() //應該寫成+=吧,左運算元都改了 for(i=0;i p[j]=0; deletes; s=p; length+=a.length; return *this; }bool string:: operator <(const string &a) int main() 追了半天才發現賦值有問題,構建了一個臨時物件,然後將這個物件返回給左值。但是這個臨時物件撤銷的時候把指標s開的陣列刪除了。用了一個複製建構函式以後就行了。 不過我要吐槽,錯誤太多了吧,特別是過載輸入輸出的時候。。。 3樓:龍__鳳 #include #include using namespace std; class string return cin;}}; {int i,j=0; string temp; temp.s=new char[length+a.length+1]; for(i=0;i 4樓:匿名使用者 首先你不應該把你的類命名為string,因為string在string庫中已經存在,你再命名成他,讓系統很難辨認你用的時候用的是誰。你可以用mystring來命名 這個程式沒有錯誤。它的作用是在控制檯輸出一行hello the world編譯器編譯並生成exe程式,生成的exe程式是不等待使用者輸入的,執行完成後便自動關閉。也就是說,執行exe後,它會在控制檯輸出hello the word,然後退出。由於程式執行速度很快,所以你是看到閃了一下就消失了。想要看... 如果p是 int 型別,且執行了p a 那麼p 1後指向陣列第二個元素,也就是你說的 p 2 如果p指向的是a的地址,p 1後指向後4個位元組,由於a不是陣列,所以後面的記憶體儲存的是什麼是不確定的,也許是上一次某變數釋放後的殘留資料的一部分,也可能是系統初始化後的原始資料 0xcccccccc 也... 你應該要返回 z 因為x,y是一個形參,當函式呼叫結束後它的值也就銷燬了。include int max int x,int y 如果函式寫主函式前面就不用宣告瞭,否則int max int x,int y 函式宣告應該放這裡 int main include int max int x,int y...C語言基礎問題
c語言指標基礎問題
還是一個狠狠狠狠狠狠基礎的C語言問題