1.型別轉換
c 方式 強制型別轉換過於粗暴 各種型別間可以隨意轉換 編譯器難以判斷正確性
#include #include using namespace std;
class a
;void a::seta(int a)
a::a()
class b :public a
;void b::setb(int b)
b::b()
//c語言中的無敵強制型別轉換
中的普通型別轉換static_cast 是在編譯時期轉換的 執行時無法檢測型別
中的強制型別轉換reinterpret_cast
中的常型別轉換const_cast
int main()
2.異常處理機制
發生錯誤時 就丟擲問題 讓接收的 進行處理
/*簡單了解一下 異常處理機制*/
/* 一層丟擲 */
#include #include using namespace std;
double div(double a, double b)
return a / b;
}int main()
catch (int)
catch (char)
system("pause");
return 0;
}/* 兩層 或者 多重丟擲 */
#include #include using namespace std;
double div(double a, double b)
return a / b;
}double f(double x, double y)
catch (char) }
int main()
catch (int)
catch (char)
system("pause");
return 0;
}/* 注意如果函式宣告的時候 後面接throw() 括號裡有什麼型別 就只可以丟擲什麼型別的異常 沒有就無法丟擲異常 看到相應**要認識 */
#include #include using namespace std;
double div(double a, double b) throw();
double f(double x, double y)
catch (char) }
int main()
catch (int)
catch (char)
system("pause");
return 0;
}double div(double a, double b) throw()
return a / b;
}/* 丟擲異常 的過程中 建立了類物件 在對應的括號結束時 會自動析構(相當於函式體結束) */
#include #include using namespace std;
class test
;test::test()
test::~test()
double div(double a, double b)
return a / b;
}int main()
catch (int)
catch (char)
system("pause");
return 0;
} /* 如果丟擲 類物件 */
#include #include using namespace std;
class test
;test::test()
test::~test()
double div(double a, double b)
return a / b;
}int main()
catch (test)
// catch (test &)
// // catch (test *t)
// system("pause");
return 0;
}
3.異常類
異常是類 – 建立自己的異常類
異常派生
異常中的資料:資料成員
按引用傳遞異常
在異常中使用虛函式
案例:設計乙個陣列類 myarray,過載操作,
陣列初始化時,對陣列的個數進行有效檢查
index<0 丟擲異常enegative
index = 0 丟擲異常 ezero
3)index>1000丟擲異常etoobig
4)index<10 丟擲異常etoosmall
5)esize類是以上類的父類,實現有引數構造、並定義virtual void printerr()輸出錯誤。
#include #include using namespace std;
class myarray
virtual void printerror() = 0;
}; class enegative : public esize
void printerror()
};class ezero : public esize
void printerror()
};class toosmall : public esize
void printerror()
};class toobig : public esize
void printerror()
}; };
myarray::myarray(int l)
else if (l == 0)
else if (l > 0 && l <= 10)
else if (l > 1000 )
m_len = l;
m_data = new char[m_len + 1];
}myarray::~myarray()
int main()
catch (myarray::enegative &e) /*上面說過的用 & 去接收; 這裡因為是類中類
所以加上域限制*/
catch (myarray::toosmall &e)
catch (myarray::toobig &e)
system("pause");
return 0;
}
4.建立自己的異常類
#include #include using namespace std;
class myexception :public exception
virtual const char * what() const throw() };
double div(double x , double y)
return x / y;
}int main()
catch (myexception &a)
system("pause");
return 0;
}
5.檔案操作
#include #include #include using namespace std;
int main()
/* 開啟檔案 輸入程式 */
#include #include #include using namespace std;
int main()
; ifstream ifs("hello.txt",ios::in); //建立檔案物件 開啟方式為 讀出 從檔案讀出 到 程式
//ifs >> buf;
//cout << "read from hello.txt :" << buf << endl;
char ch;
while ((ch = ifs.get()) != eof)
cout << endl;
system("pause");
return 0;
}/* 開啟第乙個檔案 將其中內容 複製到 另乙個檔案中 */
#include #include #include using namespace std;
int main()
; ifs.read(buf , 32);
//char buf[32] = "*********x";
//ofs << buf;
ofs.write(buf , 32);
ofs.close();
system("pause");
return 0;
}
新揚天電腦所配USB鍵盤功能鍵驅動問題注意事項
新揚天電腦所配usb鍵盤功能鍵驅動問題注意事項 文章編號 39949 2011 10 18 17 38 15 10年7月上市的新揚天 電腦所配 usb鍵盤,f1 f12 系統下會預設為快捷鍵 功能鍵 而非 f1 f12 實際功能。可能會導致使用者在使用習慣上的不適應。可以帶使用者關閉鍵盤的特殊功能,...
昨天解決的問題
今天學習的內容 1 清理類的使用,新建乙個類設定 方框 清除兩者,方在結束div的前面。2 滑動門技術 1,新建 邊界與填充為0 2,新建 li 標籤 背景 不重複,水平位置 右對齊,垂直位置 頂部。3,新建 a 標籤 背景 不重複,水平位置 左對齊,垂直位置 頂部。3 傳ruby動態引數.呵呵,這...
下週計畫 封陽台 配電腦 補手機
8月8日,同老婆來長沙趁著奧運之夜倒長沙出差 租房中發生一起嚴重的民事案件 犯罪嫌疑人估計知道家中沒人 破門而入 盜走了我的psp2000,還有老婆的家用電腦acer 4310膝上型電腦。10月18日,獨自一人坐車從宜昌再到長沙,該路線無航班 無火車 坐著臥鋪大巴8小時候凌晨來到了長沙西站 長沙郊區...