Time of Update: 2018-12-03
自從Dennis M.Ritchie於1973年設計並實現C語言以來,電腦程式設計領域已經發生了巨大的變化。以C語言為根基的C++、 Java和C#等物件導向語言相繼誕生,並在各自領域大獲成功。今天,C及其後裔幾乎統治了電腦程式設計世界。可以這麼說,C語言的誕生是現代程式語言 革命的起點,它改變了程式設計語言發展的軌跡,是程式設計語言發展史中的一個裡程碑。 然而,C並不僅僅是其他語言的起點和基礎,否則它早已成
Time of Update: 2018-12-03
問題:為什麼c#中要有ref和out?(而java中沒有)需求假設:現需要通過一個叫Swap的方法交換a,b兩個變數的值。交換前a=1,b=2,斷言:交換後a=2,b=1。現編碼如下:class Program { static void Main(string[] args) { int a = 1; int b = 2;
Time of Update: 2018-12-03
這兩個方法比較有意思,很像,但結果卻是相差十萬八千裡。我也是從誤用它們開始,慢慢進入到它們的世界。因為很巧的是當start是為0的時候,二者的結果是一樣,而我在這之前就看過substr這個方法。所以讓我產生一種錯覺,就是只有substr,沒有substring。當我發現是兩個方法來的時候,我會傻笑自己的無知。下面介紹這兩個方法:substr(start[,length])表示從start位置開始取length個字串substring(start,end)表示從start,到end之間的字串,包括
Time of Update: 2018-12-03
<enums> <catagory id="SalesOrderType"> <value description="訂單">0</value> <value description="退貨單">1</value> </catagory> <catagory id="SalesOrderStatus"> <value description="已拆分">-30
Time of Update: 2018-12-03
準備寫一個快樂學C++的系列貼子。從程式員的角度寫從動手實作的角度寫從手把手的角度寫:小說廢話多貼圖明天(我很懶,有可能會改在後天吧)我們準備帶領大家從頭學習C++基本語句如果您還沒有建立好學習c++的開發環境,請參考第一課(點這裡查看內容或點這裡查看),
Time of Update: 2018-12-03
分享如何學好C++的一點想法及給初學者的建議 江濤 jiangtao [at] tao-studio.net摘要: 根據社區中一些言論的思索,發現一些問題,產生一些想法。並將這些想法分享給C++ 初學者。關鍵詞: C++ 學習方法 分享 誤區0.引言 本文適用於C++初學者。 “媽呀,咋又跑偏了哩!”[小瀋陽] 如果您還是作為C++的初學者或者是“學過幾年C++”卻不得要領,您是否知道,您也存在跑偏了的可能呢?
Time of Update: 2018-12-03
本系列文章由zhmxy555編寫,轉載請註明出處。 http://blog.csdn.net/zhmxy555/article/details/7376281作者:毛星雲 郵箱: happylifemxy@qq.com 歡迎郵件交流編程心得"透明動畫”是遊戲中一定會用到的基本技巧,它通過圖案的連續顯示及圖案本身背景的透明化處理,在背景圖上產生出栩栩如生的動畫效果。看過之前筆記的朋友們應該知道,在筆記六裡我們介紹了使位元影像背景透明的方法,在筆記八裡我們講解了使用遊戲迴圈顯示動畫的技巧
Time of Update: 2018-12-03
本系列文章由zhmxy555編寫,轉載請註明出處。 http://blog.csdn.net/zhmxy555/article/details/7390624作者:毛星雲 郵箱: happylifemxy@qq.com 歡迎郵件交流編程心得相信大家都熟悉《仙劍奇俠傳98柔情版》的人機互動方式,用的僅僅是鍵盤。在那個物質並不充裕的時代,一台配置並不高的電腦,一款名叫《仙劍奇俠傳》的遊戲,卻能承載一代人對夢想的追逐。雖然在這十幾年間,各種新潮的遊戲層出不窮,但是《仙劍奇俠傳98柔情版》,
Time of Update: 2018-12-03
現在在Windows下的應用程式開發,VS.Net佔據了絕大多數的份額。因此很多以前搞VC++開發的人都轉向用更強大的VS.Net。在這種情況下,有很多開發人員就面臨了如何在C#中使用C++開發好的類的問題。下面就用一個完整的執行個體來詳細說明怎樣用託管C++封裝一個C++類以提供給C#使用。 比如,現在有一個工程名為NativeCppDll的由C++編寫的DLL,裡面輸出了一個CPerson類。下面是具體的代碼:// NativeCppDll.h #pragma once
Time of Update: 2018-12-03
在我那篇《淺析C++中的this指標》中,我通過分析C++代碼編譯後產生的彙編代碼來分析this指標的實現方法。這次我依然用分析C++代碼編譯後產生的彙編代碼來說明C++中虛函數調用的實現方法,順便也說明一下C++中的對象內部布局。下面所有的彙編代碼都是用VC2005編譯出來的。雖然,不同的編譯器可能會編譯出不同的結果,對象的內部布局也不盡相同;但是,只要是符合C++標準的編譯器,編譯結果和對象的內部布局應該是大同小異。
Time of Update: 2018-12-03
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性:封裝、繼承、多態,真正領悟設計模式的精髓是可能一個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用C++寫了個小例子,加深一下理解。主要參考《大話設計模式》和《設計模式:可複用物件導向軟體的基礎》(DP)兩本書。本文介紹適配器模式的實現。
Time of Update: 2018-12-03
__FILE__ 源檔案的名稱 如XXX.cpp__LINE__ 代碼在源檔案中是第幾行 __DATE__ 源檔案完成日期如Eec 11 2012__TIME__ 源檔案完成時間如21:35:35__TIMESTAMP__ 源檔案完成日期時間如Tue Dec 11 21:35:35 2012如分配記憶體函數malloc()的一個版本就使用了上面的宏#define malloc(s) _malloc_dbg(s, _NORMAL_BLOCK,
Time of Update: 2018-12-03
快速排序:#include <stdlib.h>#include <stdio.h>#include <string.h>#define LENGTH(x) sizeof(x)/sizeof(x[0])/**輸出數組元素*\param arr:指向數組的指標*\param len:數組元素的個數*/void print(char (*arr)[10],int len){ int i; for (i=0;i<len;i++) {
Time of Update: 2018-12-03
在《基類和衍生類別》中講述了單繼承的基本概念,這節著重講述繼承的具體應用。 在單繼承中,每個類可以有多個衍生類別,但是每個衍生類別只能有一個基類,從而形成樹形結構。 成員存取權限的控制 在《基類和衍生類別》一講中,我們講述了衍生類別和衍生類別的對象對基類成員的存取權限的若干規定,這裡通過一個執行個體進一步討論存取權限的具體控制,然後得出在使用三種繼承方式時的調用方法。//繼承性的public繼承方式的存取權限的例子#include file://定義基類Aclass A{public:
Time of Update: 2018-12-03
可以將XML檔案的樹(只有一個頂層節點).於是理所當然的可以用樹作為XML的一種儲存結構.我將在這裡用C++實現對簡單的XML檔案的解析.1.選擇儲存結構:樹型資料結構有多種儲存方式,我將用"孩子兄弟標記法",定義如下:typedef struct CSNode{int subNodes;string data;string name;struct CSNode *firstChild,*nextsibling,*parent;CSNode* operator=(CSNode cnode)
Time of Update: 2018-12-03
對象數組是指數組元素為對象的數組。該數組中若干個元素必須是同一個類的若干個對象。對象數組的定義、賦值和引用與普通數組一樣,只是數組的元素與普通數組不同,它是同類的若干個對象。 1. 對象數組的定義 對象數組定義格式如下: <類名><數組名>[<大小>]... 其中,<類名>指出該數組元素是屬於該類的對象,方括弧內的<大小>給出某一維的元素個數。一維對象數組只有一個方括弧,二維對象數組要有兩個方括弧,等等,例如: DATE
Time of Update: 2018-12-03
轉載自:http://www.cnblogs.com/salomon/archive/2012/06/04/2534787.html最近一直在看STL和Boost,源碼裡邊好多涉及到模板元編程技術,簡單瞭解一下,備忘(Boost Python中的涉及模板元的部分重點關注一下)。範例引入// 主模板template<int N>struct Fib{ enum { Result = Fib<N-1>::Result + Fib<N-2>::Result }
Time of Update: 2018-12-03
前提 : 是做開發好還是繼續做外包裡的sub lead好,我不知道,我只知道當我的程式運行起來時我非常有成就感! 共有4題,這裡先說題目,給大家想一想:1.const在函式宣告時的作用2.解釋一下dynamic_cast3.寫單例模式的代碼4..字串反轉,例子"I am good",期望結果"good am
Time of Update: 2018-12-03
簡單原廠模式按照設計模式類型分的話是屬於建立型模式,他是原廠模式中最簡單的一種,他不屬於GoF 23中設計模式之一,但是是簡單實用的。他是有一個工廠對象來決定建立哪一種對象的執行個體。實現比較簡單,這裡我只貼出類圖和調用方法: 調用方法:IProduct * simpleFactory::Create(std::string className){if( className == "Ipad")return new Ipad();if(className == "IPhone")return
Time of Update: 2018-12-03
Factory 方法模式不同於簡單原廠模式的地方在於Factory 方法模式把對象的建立過程放到裡子類裡。這樣工廠父物件和產品父物件一樣,可以是抽象類別或者介面,只定義相應的規範或操作,不涉及具體的建立或實現細節。 其類圖如下: 執行個體代碼為:#pragma onceclass IProduct{public:IProduct(void);virtual ~IProduct(void);};#pragma once#include "iproduct.h"class IPad :public