Time of Update: 2018-12-05
#include <iostream>#include<stdio.h>using namespace std;class B{public: void vf() { cout << "This is class B" << endl; }};class D: public B{public: void vf() { cout << "This is class D" <&
Time of Update: 2018-12-05
題外話 鄙人最近在家裡聽斯坦福大學的開放課程——《編程範式Programming Paradigms》。附上veryCD的資源:http://www.verycd.com/topics/2838268/ 這個是英文授課,現在還是沒有中文或英文字幕的。就課程來說非常不錯。其中Lecture
Time of Update: 2018-12-05
*************************************************************************************轉自:http://hi.baidu.com/to9m/blog/item/cdc68495dd2c1a0d7af4807a.html在C++中,有一個stream這個類,所有的I/O都以這個“流”類為基礎的,包括我們要認識的檔案I/O,stream這個類有兩個重要的運算子: 1、插入器(<<)
Time of Update: 2018-12-05
首先,看如下8個題,如果您能不看任何資料的情況下做對。那麼恭喜您,這塊應該基本沒問題了。因為再複雜的組合都是從這上面8種裡變出來的。1,定義一個整形數2,定義一個指向整形數的指標3,定義一個指向指標的指標,它指向的指標,是一個指向整形數的指標4,定義一個具有10個整形數的數組5,定義一個具有10個指標的數組,這些指標都是指向整形數的6,定義一個指向有10個整形數 數組的指標7,定義一個指向函數的指標,該函數有一個整形參數
Time of Update: 2018-12-05
說明:此處內容是在網上摘抄的,總結一下,為了以後尋找方面。new是在堆上分配記憶體,它需要用delete釋放,否則會造成記憶體流失(使用的記憶體沒有即時釋放,造成記憶體的浪費)而A a在右大括弧執行後,會自動釋放記憶體如int main(){A a;//定義了一個a對象A *p=new A;//在堆上定義了一個對象,它的指標儲存在p裡,注意,堆上定義的對象沒有名字,必須用指標儲存return 0;}//a到這裡的時候,它佔用的記憶體就會被回收 而p,除非調用delete p;
Time of Update: 2018-12-05
#include <stdio.h>#include <math.h>int isPrime(int n);int main(){ int i = 2; for ( i=2; i<=100; i++) { if(isPrime(i)) printf(\"i = %5d\",i); }}int isPrime(int n){ int i = 0; for(i=1;i<sqrt(n);i++) { if(n%i==0) return 0; }
Time of Update: 2018-12-05
main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 輸出:2,5 *(a+1)就是a[1],*(ptr-1)就是a[4],執行結果是2,5 &a+1不是首地址+1,系統會認為加一個a數組的位移,是位移了一個數組的大小(本例是5個int) int *ptr=(int *)(&a+1); 則ptr實際是&(a[5]
Time of Update: 2018-12-05
C++堆與棧的區別 轉載:http://blog.chinaunix.net/space.php?uid=589727&do=blog&id=2732643一、預備知識—程式的記憶體配置 一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收
Time of Update: 2018-12-05
是用連結的編譯器 4.1.2 編譯qt4.5.2,./configure 能過,make就過不了了,如下錯誤<built-in>:0: note: candidates are: void* operator new(unsigned int)make[1]: *** [.pch/release-shared-emb-arm/QtCore.gch/c++] 錯誤 1make[1]: Leaving directory
Time of Update: 2018-12-05
exit() 結束當前進程/當前程式/,在整個程式中,只要調用 exit ,就結束 return() 是當前函數返回,當然如果是在主函數main, 自然也就結束當前進程了,如果不是,那就是退回上一層調用。在多個進程時.如果有時要檢測上進程是否正常退出的.就要用到上個進程的傳回值.. exit(1)表示進程正常退出. 返回 1; exit(0)表示進程非正常退出. 返回 0. 進程環境與進程式控制制(1): 進程的開始與終止 1. 進程的開始: C程式是從main函數開始執行,
Time of Update: 2018-12-05
轉自:http://hi.baidu.com/qrs1/blog/item/c4b5dbcd0fa0d2590fb345e5.html 1. 以下三條輸出語句分別輸出什嗎?[C易]char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char* str5 = "abc";const char* str6 = "abc";cout <<
Time of Update: 2018-12-05
0. 為什麼要掌握優先順序 想想這兩個問題: a. 讀別人的代碼,遇到優先順序問題看不懂,怎麼辦? b. 一堆的括弧,美觀嗎? 本想貼一張畫來裝飾牆壁,卻用了一堆紙來固定! 有人說代碼寫多了,自然就會了。這個是很寬泛的說法。看你寫的代碼的水準,有些東西可能你一直都接觸不到,何談熟練。有些東西一定要梳理,總結。1. 優先順序1.1 優先順序圖表
Time of Update: 2018-12-05
1、在函數中一般都是固定的參數調用,為了實現可變參數調用,需要用到stdarg.h庫中聲明的幾個宏定義。2、定義 在VC++6.0的include有一個stdarg.h標頭檔,有如下幾個宏定義: #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
Time of Update: 2018-12-05
User-defined datatypes, structs, unions, bitfields. Memory allocation. Linked lists, binary trees.StructureDefinition: A structure is a collection of related variables (ofpossibly different types) grouped together under a single name.• Variables can
Time of Update: 2018-12-05
5. 記錄集的遍曆、更新 根據我們剛才通過執行SQL命令建立好的users表,它包含四個欄位:ID,username,old,birthday以下的代碼實現:開啟記錄集,遍曆所有記錄,刪除第一條記錄,添加三條記錄,移動游標到第二條記錄,更改其年齡,儲存到資料庫。 _variant_t vUsername,vBirthday,vID,vOld;_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance("ADODB.Recordset")
Time of Update: 2018-12-05
摘要:在各種業務解決方案的設計中,伺服器處理任務的效率是衡量方案優劣的一個重要標準。使用多線程技術並發處理任務是提高伺服器效率的一個主要手段。但是頻繁的線程建立、銷毀和任務的分配也會降低系統效率。本文設計了一個通用的線程池,根據不同伺服器所處理的任務的特點,可以設定對應的線程池參數,最大幅度的提高系統效能。 關鍵字:線程池多線程任務虛函數異常 概述 在各種業務解決方案的設計過程中,伺服器處理任務的效率往往決定了方案的成敗。多執行緒任務是提高伺服器效率的主要手段,它提高了對伺服器資源的利用,
Time of Update: 2018-12-05
4.執行SQL命令並取得結果記錄集 為了取得結果記錄集,我們定義一個指向Recordset對象的指標:_RecordsetPtr m_pRecordset;並為其建立Recordset對象的執行個體: m_pRecordset.CreateInstance("ADODB.Recordset");SQL命令的執行可以採用多種形式,下面我們一進行闡述。 (1)利用Connection對象的Execute方法執行SQL命令 Execute方法的原型如下所示: _
Time of Update: 2018-12-05
一般情況下,程式開發人員都希望自己的程式美觀大方,為了達到這一個要求,想盡辦法美化自己的程式,另一方面,文字是程式介面上不可或缺的一種傳遞資訊的途徑,如果在介面上適當的地方添加並顯示各種特殊效果的文字,將不失為一個好的選擇,可以達到事半功倍的效果,本例針對Visual C++中編程實現文字的特殊顯示效果這一問題,通過編寫一個簡單的小程式,介紹如何?這一目標。讀者朋友可以稍加改動,將該方法應用到自己的程式中去。圖一 字串的環繞顯示
Time of Update: 2018-12-05
簡介長期以來,程式員們都使用 C 和 C++ 來開發 Windows GUI 應用程式。對於我們當中很多人來說,這一段曆史可以追溯到 Windows 2.0 時期,那時,我們使用基於 C 的 16 位 Windows API,即便只是顯示一個視窗,也需要編寫數十行代碼。幸運的是,隨著時間的推移,抽象的層級越來越高,越來越好。在 1992 年,Microsoft 發行了 Programmer's Workbench,其中包括 Microsoft 基礎類庫 1.0 版。Microsoft 基礎類庫
Time of Update: 2018-12-05
最佳化variant實現 上一次,我大概製作了一個variant類型,並設法賦予這個類型同C++內建類型幾乎一樣的行為。但是,具體實現起來,倒是有點望而生畏。想想看,如果我的variant需要包容5種類型,那麼單單一個操作符,就需要5×5+1=26個操作符重載(那單獨一個是variant類型運算元的重載)。所有二元操作符都是如此。