美國聯邦調查局(FBI)局長羅伯特·米勒2日表示,在不遠的未來,網絡恐怖主義會成為與當前恐怖主義模式相當或更嚴重的威脅。
米勒當天在參議院舉行的關於全球威脅的聽證會上警告說,FBI和其他情報機構應改變結構,以應對這類日益嚴重的威脅。
米勒說:“關於互聯網目前我們做得很少。侵犯知識產權、竊取研發成果、竊取企業發展方案和計劃等,所有這些事件都很容易被攻擊者利用。”
他還表示,情報機構應該像9·11恐怖襲擊後那樣“共享信息”。他強調說:“我們必須建立應對此類威脅的共同機制,就像9·11後我們所做的那樣,打破部門間的藩籬。”
米勒希望國會能通過一項應對網絡恐怖主義威脅的法案,把調查和情報機構變成“信息接收者”。他說,這將有助於FBI和其他機構分享關於某個案件的信息。
米勒在周二舉行的一次聽證會上曾警告說,應把網絡恐怖主義、黑客攻擊、戰略網絡的脆弱性對美國構成的威脅放在頭等重要的位置。
他說,制止恐怖主義襲擊是FBI當前的首要任務,但未來網絡威脅將成為美國最大的安全問題。 作為明年7月入職的職場新人,雖然大學裡寫了不少project,但實戰經驗匮乏,實在不是什麼牛人。所以還是笨鳥先飛,在一段非常閒適的日子裡買來了Effective C++,想進一步提升自我,在入職前打好基礎,特此邊研讀邊做筆記一份,有摘錄有總結有自己的一些理解。我知道這玩意兒基本沒什麼人觀摩,但萬一有人走過路過,望不吝賜教。
Start
聲明式(Declaration):告訴編譯器某個東西的名稱和類型,但略去細節。
std::size_t numDigits(int number);
每個函數的聲明揭示其聲明式:參數&返回類型
如上numDigits函數的簽名是std::size_t(int),也就是說"這函數獲得一個int 並返回一個std::size_t"。
定義式(Definition):提供編譯器一些聲明式所遺漏的細節。
定義式為對象分配內存;為function提供代碼本體,為class列出其成員(構造)。
class Widget {
public:
Widget();
~Widget();
...
};
template<typenameT>
class GraphNode{
public:
GraphNode();
~GraphNode();
...
};
初始化(Initialization):給予對象初值。
用戶自定義類型對象的初始化由構造函數執行;default構造函數要麼沒有參數,要麼每個參數都有缺省值。
class A {
public:
explicit A (int x=0, bool b=true);
};
void doSth (A aObject);
A obj (28); //Right,根據28創建A,第二個參數bool被缺省為true
doSth(28); //Wrong,應該傳入參數A,int與A之間不能隱式轉換
doSth(A(28)); //Right, cast顯式轉換
用explicit聲明構造函數,阻止了參數隱式類型轉換的執行,但仍可進行顯式類型轉換;因此,除非有隱式轉換需要,否則構造函數被鼓勵聲明為explicit。
copy構造函數:以同型對象初始化自我對象,構造函數的參數為另一同類型對象;
copyassignment操作符:從另一個同型對象中拷貝其值到自我對象,其實就是等號賦值。
class Widget
{
public:
Widget(); //default構造函數
Widget(const Widget& rhs); //copy構造函數
Widget& operator=(const Widget&rhs); //copy assignment操作符
...
};
Widget w1; //call the defaultconstructor
Widget w2(w1); //call the copyconstructor
w1 = w2; //call the copy assignment operator
Then:
Widget w3 =w2;
先用copy構造函數創建w3,再用w2(已定義的)進行等號賦值;值傳遞就意味著調用copy構造函數。
STL:標准模板庫(Standard Template Library),C++標准程序庫的一部分,致力於容器(vector,list,set,map,等等),迭代器(vector<int>::iterator,set<string>::iterator,等等), 算法(for_each,find,sort,等等)。
不明確行為(undefined behavior):某些C++構件的行為沒有定義,無法穩定估計運行期會發生什麼。
int *p = 0; // p為null指針
std::cout << *p; //對null指針取值
char name[] = "Darla";// name數組大小為6(尾端為null)
char c = name[10]; //指向一個無效的數組索引
盡可能避開不明確行為。
摘自 pandawuwyj的專欄