Time of Update: 2015-07-26
標籤:函數 指標 地址 C語言中可以用函數地址直接調用函數:void print (){ printf ("function print");}typdef void (*fun)();fun f = print;f();C++中類非靜態成員函數必須通過執行個體去調用,C++中類成員函數調用:class test{public:void
Time of Update: 2015-07-26
標籤:rtti c++ RTTI(Run-Time Type Information,通過運行時類型資訊)程式能夠使用基類的指標或引用來檢查這些指標或引用所指的對象的實際衍生類別型。c++有三個支援RTTI的元素 1)如果可能的話,dynamic_cast運算子將使用一個指向基類的指標來產生一個指向衍生類別的指標,否則,該運算子返回0 ——null 指標。 dynamic_cast < Type *> (pt);
Time of Update: 2015-07-26
標籤:#ifndef __MEM__H#define __MEM__H#include<iostream>using namespace std;//自動管理記憶體塊typedef unsigned char byte;class Mem{private:byte* mem;int size;void ensureMinSize(int minSize);public:Mem();Mem(int sz);~Mem();int msize();//byte*
Time of Update: 2015-07-26
標籤: static顧名思義是一個靜態含義。在此我想談談相關的系統statickeyword角色,當然,這主要是對語言的發展C與C++角色,在資訊方面的作用等方面,請另找。在評論中肯定有不恰當,請大膽地拋磚。手軟,文中的內容引用了不少網上的資料。
Time of Update: 2015-07-26
標籤:這兩個函數用於拷貝字串或者一段連續的記憶體,函數原型:void * memcpy ( void * destination, const void * source, size_t num );void * memmove ( void * destination, const void * source, size_t num
Time of Update: 2015-07-26
標籤:C++中四種類型轉換方式類型轉換有c風格的,當然還有c++風格的。c風格的轉換的格式很簡單(TYPE)EXPRESSION,但是c風格的類型轉換有不少的缺點,有的時候用c風格的轉換是不合適的,因為它可以在任意類型之間轉換,比如你可以把一個指向const對象的指標轉換成指向非const對象的指標,把一個指向基類對象的指標轉換成指向一個衍生類別對象的指標,這兩種轉換之間的差別是巨大的,但是傳統的c語言風格的類型轉換沒有區分這些。還有一個缺點就是,c風格的轉換不容易尋找,他由一個括弧加上一個標識
Time of Update: 2015-07-26
標籤: C語言允許使用可變參數列表,我們常用的printf函數即為可變參數函數,C標準庫提供了stdarg.h為我們提供了這方面支援;該標頭檔提供了一些類型和宏來支援可變參數列表,包括類型va_list,宏va_start、va_arg、va_end; 可變函數參數定義方法:#include <stdarg.h>void func(int count,...){ va_list ap; int ix, tmp; va_start(ap,
Time of Update: 2015-07-26
標籤:1、【C++沉思錄】控制代碼1 存在問題:控制代碼為了綁定到Point的對象上,必須定義一個輔助類UPoint,如果要求控制代碼綁定到Point的子類上,那就存在問題了。2、有沒有更簡單的辦法呢?控制代碼使用Point*直接綁定到Point對象上(包括子類),為了保持多個控制代碼引用計數的一致性,使用int* 指向引用計數。3、代碼如下:#include "point.h"class Handle_2{public:Handle_2():_p(new Point),_u(new int(1
Time of Update: 2015-07-26
標籤:1、考慮下面的情境:設計一個容器,包含一群組類型不同但相互關聯的對象(比如:Animal,Dog,Cat),對象具備多態行為。2、容器一般只能包含一種類型的對象,使用vector<Animal> 會造成對象切割,不具備多態行為。3、經典的解決辦法是:vector<Animal*>, 但是這會增加記憶體管理的負擔。考慮下面的情況:Dog d;vec[i] = &d; // 局部對象d銷毀, vec[i] 指向垃圾vec[i] = vec[j]; //
Time of Update: 2015-07-26
標籤:srand((unsigned)time(NULL))則使用系統定時/計數器的值作為隨機種子。每個種子對應一組根據演算法預先產生的隨機數,所以,在相同的平台環境下,不同時間產生的隨機數會是不同的,相應的,若將srand(unsigned)time(NULL)改為srand(TP)(TP為任一常量),則無論何時運行、運行多少次得到的“隨機數”都會是一組固定的序列,因此srand產生的隨機數是偽隨機數。庫函數中系統提供了兩個函數用於產生隨機數:srand()和rand(
Time of Update: 2015-07-26
標籤:1、在【C++沉思錄】代理類中,使用了代理類,存在問題:a、代理複製,每次建立一個副本,這個開銷有可能很大b、有些對象不能輕易棄置站台,比如檔案2、怎麼解決這個問題?使用引用計數控制代碼,對動態資源封裝,控制代碼包含指標,多個控制代碼可以指向同一個對象。複製的時候,只是複製控制代碼的指標。3、使用引用計數控制代碼,是為了避免不必要的對象複製,因此我們要知道有多少個控制代碼綁定到當前對象,也就是引用計數,這樣才能確定何時可以釋放資源。4、需要注意的是:引用計數不能是控制代碼的一部分,如果怎麼
Time of Update: 2015-07-26
標籤:foundation架構 objective-c c++ 轉換 string 3.將C++的標識符轉成OC的標識符 C++的標識符和OC一樣由數字字母底線組成,打頭的不是數字。當標識符超過一個單詞, C++採用全字母小寫,單詞間用底線串連的書寫規範,如: bei_jing OC採用除第一個單詞外,其餘單字首大寫的書寫規範,
Time of Update: 2015-07-26
標籤:c語言 iterator map c++ C++ STL中的map是非常常見的。通常我們用如下方式來遍曆,並且刪除map中的一些entry:map<int, int> mp;mp.insert(make_pair(1,1));mp.insert(make_pair(2,3)); // insert some elementsfor
Time of Update: 2015-07-26
標籤:c#集飽含不重複元素的集合稱為”集(set)”. .NET4包含兩個集(HashSet<T>和SortedSet<T>),他們都實現ISet<T>介面.HashSet<T>即包含不重複元素的無序列表,SortedSet<T>集包含不重複元素的有序列表.ISet<T>介面提供的方法可以建立合集,交集,或者給出一個集合時另一個集的超集或子集的資訊.案例:
Time of Update: 2015-07-26
標籤:今天,我們來聊一聊C#的擴充方法。C#
Time of Update: 2015-07-26
標籤: 在實際的軟體開發項目,通常,它包括產生一唯一的序號。在本文中,一個切實可行的方案,例如,它引入了一個唯一的序號產生過程。 本文產生的序號的樣式為:MMDDHHMINSS_XXXXXX。 程式例如以下:/*************
Time of Update: 2015-07-26
標籤:Submit Status Practice POJ 2559Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure on the left shows the
Time of Update: 2015-07-26
標籤:I2C是一種串列匯流排協議。
Time of Update: 2015-07-26
標籤:書名:The ABC Murders推薦指數:5星Agatha Christie單詞數:7萬不重複單詞數:不詳首萬詞不重複單詞數:不詳藍思值:740閱讀時間:2015年7月18日 –
Time of Update: 2015-07-26
標籤:嵌入式 c語言 組合語言 嵌入式系統 開發人員 嵌入式C語言最佳化小技巧1