Time of Update: 2018-12-03
(轉)C++中extern “C”含義深層探索 1.引言 C++語言的建立初衷是“a better
Time of Update: 2018-12-03
C++ casts那些事兒 C/C++編譯器類型隱式轉換我想大家都一定很熟悉了。寫C++的程式,要麼是依靠編譯器進行類型隱式轉換,要麼自己顯示將類型進行轉換,但是很少用到cast。最近看到一些代碼經常使用cast來進行顯示轉換。自己研究下,發現cast這東西還是很有意思。 C++中cast關鍵字有:static_cast, dynamic_cast, const_cast, reinterpret_cast四種cast的文法: cast-name<type>(expressiong)
Time of Update: 2018-12-03
stroul,strdupsnprintf()atio C中常用字串操作函數#include <string.h> size_t strlen(const char *s) 測量字串長度s的實際長度。例如s[20]="abc",那麼strlen(s)的結果是3,而不是20.這就是實際長度 char *strcat(const char *s1, const *s2) 將字串s2串連到s1的尾部。從s1的/0開始。 int strcmp(const *s1,const *s2
Time of Update: 2018-12-03
對比兩種傳遞方式:按值傳遞變數,需要有複製實參記憶體以初始化形參,所以這將帶來一些開銷。在討論簡單變數時,內建的類型(如int、float)的開銷可以忽略不計,但對於大型的對象(如代表整個3D世界的大對象)來說,複製的代價會很高昂。C語言也提供了一種指標式的“按值傳遞”,也可以解決傳遞大對象時代價過高的問題,然而“指標”由於安全問題一直為眾多程式員所詬病。故而C++又提供了一個按引用傳遞。按引用傳遞:按值傳遞無法修改實參的值,因為它形參永遠是實參的副本;然而按引用傳遞可以修改實參的值。 某些情況
Time of Update: 2018-12-03
如果沒有自訂複製建構函式,則系統會建立預設的複製建構函式,但系統建立的預設複製建構函式只會執行“淺拷貝”,即將被拷貝對象的資料成員的值一一賦值給新建立的對象,若該類的資料成員中有指標成員,則會使得新的對象的指標所指向的地址與被拷貝對象的指標所指向的地址相同,delete該指標時則會導致兩次重複delete而出錯。下面是樣本://animal.h#include<string>#include<iostream>using namespace std;class
Time of Update: 2018-12-03
在C#中有個較為重要,而常被一些人忽視的符號——問號(?)。在這裡整理一下它在C#的幾種情況:1. 可空類型修飾符“T?”。(我承認先前我確實不知道,也不常用)可空類型的基礎類型可以是任何非可空實值型別或任何具有struct約束的型別參數,但不能是可空類型或參考型別。例如:int? 代表是可空的整形,而
Time of Update: 2018-12-03
今天閑來無事,晒晒自己最近從項目中學的東西吧。重點是感受啊,這些東西以前也接觸過,但是不會活學活用,導致需要的時候忘的差不多了。 1)Eval綁定可以綁定一個單獨的欄位 Eval("houseID")也可以綁定一個函數 <%# houseEdit(Eval("infoType"), Eval("houseID"))%> 2)Bind綁定 兩者的區別:Eval 方法是靜態單向(唯讀)方法,所以Eval
Time of Update: 2018-12-03
public class cricularqueue//迴圈隊列 { string[] queues; int head = 0; int rear = 0; public cricularqueue() { queues=new string[10]; } public cricularqueue(int Length) {
Time of Update: 2018-12-03
C語言編譯全過程 編譯的概念:編譯器讀取來源程式(字元流),對之進行詞法和文法的分析,將進階語言指令轉換為功能等效的彙編代碼,再由組譯工具轉換為機器語言,並且按照作業系統對可執行檔格式的要求連結產生可執行程式。 編譯的完整過程:C來源程式-->先行編譯處理(.c)-->編譯、最佳化程式(.s、.asm)-->組譯工具(.obj、.o、.a、.ko)-->連結程式(.exe、.elf、.axf等)1. 編譯預先處理
Time of Update: 2018-12-03
/// <summary> /// 返回絕對URL地址 /// </summary> /// <param name="fromUrl">來源URL</param> /// <param name="url">搜尋到的地址</param> /// <returns>絕對URL地址</returns>
Time of Update: 2018-12-03
父視窗:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace mail...{ public partial class Form1: Form ...{ private
Time of Update: 2018-12-03
Hello World1.建立一個WinForm項目,項目->增加新項->選擇Crystal 報表2.使用報表精靈->建立新串連->資料庫檔案->選擇一個Access資料庫db.mdb3.選中一個表:Article添加到選定的表中,下一步4.選擇可用欄位添加到要顯示的欄位中。不點下一步,直接點完成。5.這樣就建立了一個報表檔案,為報表做一些美化。
Time of Update: 2018-12-03
C++的檔案結構1.三類: 類聲明檔案(*.h) 類實現檔案(*.cpp) 類使用檔案(*.cpp,主函數檔案)2.好處是:可單獨編寫、編譯,最後再串連。3.編譯方式 每個*.cpp產生一個*.obj 所有*.obj串連產生*.exe編譯預先處理程式1.#include <檔案名稱>,此檔案位於C++系統目錄的include子目錄下。2.#include "檔案名稱",首先在目前的目錄搜尋,沒有再在include目錄中找。3.#define和#undef
Time of Update: 2018-12-03
雖然Revit的使用者和開發目前在中國都很少,但是這是個趨勢。未來Revit會在許多方面取代Autocad做CAD二次開發的,在中國也很吃香。但是使用C++難倒了許多人。而Revit二次開發可以使用C#並且上手非常容易。假如你是一個C#程式員,正在確定自己未來的方向,不妨考慮做個Revit二次開發人員。這是我剛剛建立的Revit二次開發論壇http://revit.5d6d.com目前國內還沒有成熟的Revit二次開發產品,我們共同努力吧。
Time of Update: 2018-12-03
假如我有100條記錄,我想通過SQLserver 分段查詢 讓他 每頁顯示10條 顯示10頁,應該怎麼寫?一:select top 10 * from table where 主鍵 not in(select top 10*(頁數-1) 主鍵 from table)就是這樣寫啊 ,table就是你表的名字 主鍵就是表的主鍵欄位啊, 頁數應該是動態設定的,根據翻頁來確定 頁數,套著改。二:假設主鍵列為IDselect top 10 * from 表 order by id
Time of Update: 2018-12-03
這個問題應該是我以前在CSDN蹭分時回答次數比較多的一個問題了,我的回答一般是三種方法:(1)用vector的vector,(2)先分配一個指標 數組,然後讓裡面每一個指標再指向一個數組,這個做法的好處是訪問數組元素時比較直觀,可以用a[x][y]這樣的寫法,缺點是它相當於C#中的一個鋸齒 數組,記憶體空間不連續。(3)直接分配一個x*y大小的一維數組,這樣保證空間是連續的,但訪問數組元素不直觀。對於我這個“經典”回答,我那時還一直是 挺得意的,至少從蹭分的角度來看,這樣回答還是很有效。
Time of Update: 2018-12-03
最近一段時間總是用C和WEBSERVICE進行一些資料的互動,所以不得不用XML這些東西,用C寫死剖析器總是不太好,稍做更改就是改程式,太麻煩。 所以,在用這些之前,自已寫了點XML的解析小測試,感覺不是很難,拿出來和大家分享,如果您是高手,請不要見笑,如果您從中學到了點東西,那我非常高興,不妥之處警請指正: #include <libxml/xmlreader.h>#include <stdio.h>#include <string.h>#include
Time of Update: 2018-12-03
Time of Update: 2018-12-03
在我的那篇“C++中虛解構函式的作用”中我說明了為什麼作為基類的類的解構函式必須是虛函數,同時也指出:為了避免產生虛函數表,如果類不是基類的話,解構函式就不需要聲明為虛函數。 但是,我們不能預料使用者的行為,你不敢肯定使用者是否會從你的類去派生自己的類。如果使用者以一個基類指標去刪除一個衍生類別的對象,就會發生衍生類別的解構函式不被調用的情況。這樣做的危險性我想大家都知道。當然,你可以在類的說明文檔中,甚至是在類的標頭檔中,說明你寫的類不能作為基類。可是,誰又能保證,使用者會仔細閱讀這些
Time of Update: 2018-12-03
第1章 致讀者[1] 在編寫程式時,你是在為你針對某個問題的解決方案中的思想建立起一種具體表示。讓程式的結構儘可能地直接反映這些思想: [a] 如果你能把“它”看成一個獨立的概念,就把它做成一個類。 [b] 如果你能把“它”看成一個獨立地實體,就把它做成某個類的一個對象。 [c] 如果兩個類有共同的介面,將此介面做成一個抽象類別。 [d] 如果兩個類的實現有某些顯著的共同東西,靜這些共性做成一個基類。 [e] 如果一個類是一種對象的容器,將它做成一個模板。