Time of Update: 2018-12-05
本文討論:C# 與 LINQ LINQ 的演變 從代碼中執行 SQL 查詢 本文使用了以下技術:LINQ, C#目錄Lambda 運算式擴充方法匿名型別隱式類型化部變數對象初始值查詢運算式 我曾是 Connections 系列節目的一名超級愛好者,這是在《探索頻道》(Discovery Channel) 中由 James Burke
Time of Update: 2018-12-05
using System;using System.Runtime.InteropServices;using System.Management; namespace MzwuCom.Common{ /// <summary> /// Hardware_Mac 的摘要說明。 /// </summary> public class HardwareInfo { /// <summary> ///
Time of Update: 2018-12-05
1.1 條款1:視C++為一個語言聯邦(View C++ as a federation of language)C++主要的次語言(sublanguage):l 【3-1-1】 說到底C++仍是以C為基礎。區塊(blocks),語句 (statements),前置處理器(preproccessor),內建資料類型(built-in data types),數組(arrays),指標(pointers)等都來自於C。l 【3-1-2】 Object-Oriented
Time of Update: 2018-12-05
來源程式編譯 Makefile的編寫 程式庫的連結 程式的調試 標頭檔和系統求助 1.來源程式的編譯 在Linux下面,如果要編譯一個C語言來源程式,我們要使用GNU的gcc編譯器. 下面我們以一個執行個體來說明如何使用gcc編譯器. 假設我們有下面一個非常簡單的來源程式(hello.c): int main(int argc,char **argv) { printf( " "Hello Linux "
Time of Update: 2018-12-05
Dictionary<string, string>是一個泛型 他本身有集合的功能有時候可以把它看成數組 他的結構是這樣的:Dictionary<[key], [value]> 他的特點是存入對象是需要與[key]值一一對應的存入該泛型 通過某一個一定的[key]去找到對應的值 舉個例子: //執行個體化對象 Dictionary<int, string> dic = new Dictionary<int, string>(); //對象打點添加
Time of Update: 2018-12-05
在前面的文章裡聊完了進程終止對C++對象析構的影響。今天咱們來說一下線程對於C++對象析構的影響。 由於C++ 03標準沒有包含線程的概念,而C++0x尚未正式發布。所以對線程的討論只好根據特定的作業系統平台來談。對於作業系統內建的線程API,目前比較流行的款式是Windows平台提供的線程API和POSIX平台上的pthread
Time of Update: 2018-12-05
微軟公司給c#(讀為c-sharp)賦予c++某些物件導向的本質,比如模板,但改動了類的建立方法。本文,我將對比c++和c#的類,並著重說明微軟在c#中類建立和使用方面的改動。一、簡介物件導向(oo)編程在應用設計中已發展二十來年了。程式不再是一系列函數的堆徹(象一些範例那樣的程式),而是對象的集合,每個對象都有其獨特的屬性和方法來和其他對象打交道。"c"語言系列是物件導向設計發展的最佳例子。c++為研發者提供了優秀的物件導向編程工具,程式員能顯式地建立建構函式,拷貝建構函式,重載操作符,使用模
Time of Update: 2018-12-05
——何謂指標 本篇說明C++中的重中又重的關鍵——指標類型,並說明兩個很有意義的概念——靜態和動態。數組 前面說了在C++中是通過變數來對記憶體進行訪問的,但根據前面的說明,C++中只能通過變數來操作記憶體,也就是說要操作某塊記憶體,就必須先將這塊記憶體的首地址和一個變數名綁定起來,這是很糟糕的。比如有100塊記憶體用以記錄100個工人的工資,現在要將每個工人的工資增加5%,為了知道各個工人增加了後的工資為多少,就定義一個變數float
Time of Update: 2018-12-05
——類的相關知識 由於篇幅限制,本篇為《C++從零開始(十一)》的中篇,說明多重繼承、虛繼承和虛函數的實現方式。多重繼承 這裡有個有趣的問題,如下: struct A { long a, b, c; char d; }; struct B : public A { long e, f; };
Time of Update: 2018-12-05
引言 曾經有些人問我問題,問得都是一些很基礎的問題,但這些人卻已經能使用VC編一個對話方塊介面來進行必要的操作或者是文檔/視介面來即時接收埠資料並動態顯示曲線(還使用了多線程技術),卻連那些基礎的問題都不清楚,並且最嚴重的後果就是導致編寫出拙劣的代碼(雖然是多線程,但真不敢恭維),不清楚類的含義,混雜使用各種可用的技術來達到目的(連用異常代替選擇語句都弄出來了),代碼邏輯混亂,感覺就和金山快譯的翻譯效果一樣。
Time of Update: 2018-12-05
#!/bin/shSTATUS="$?"#0 remove the filerm -f $2if [ $STATUS -eq 0 ];then echo -e "/t1. --Good--Begin-->"else echo -e "/t1. --Sorry--"fi#1 format the $1indent -kr $1 -o $1if [ $STATUS -eq 0 ];then echo -e "/t2. format
Time of Update: 2018-12-05
這幾天弄一個程式,基礎類之間需要相互引用,include太多了,結果這樣那樣的不知為何的錯誤出現了,最終把一個include改為class聲明解決了,在C++的編程規範中必須加強。以下轉載有略微改動。在一些大的工程中,可能會包含幾十個基礎類,免不了之間會互相引用(不滿足繼承關係,而是組合關係)。也就是需要互相聲明。好了,這時候會帶來一些混亂。如果處理得不好,會搞得一團糟,根據我的經驗,簡單談談自已的處理辦法:編碼時,我們一般會盡量避免include標頭檔,而是採用聲明class XXX。
Time of Update: 2018-12-05
C語言最重要的知識點複習資料!總體上必須清楚的:1)程式結構是三種: 順序結構 , 迴圈結構(三個迴圈結構), 選擇結構(if 和 switch)2)讀程式都要從main()入口, 然後從最上面順序往下讀(碰到迴圈做迴圈,碰到選擇做選擇)。3)電腦的資料在電腦中儲存是以 二進位的形式. 資料存放的位置就是 他的地址.4)bit是位 是指為0 或者1。 byte 是指位元組, 一個位元組 = 八個位.5) 一定要記住 二進位 如何劃成 十進位。概念常考到的:1、編譯預先處理不是C語言的一部分,
Time of Update: 2018-12-05
STL 中 string list deque vector set map 容器的區別在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是無序的儲存元素,只能通過它提供的介面對裡面的元素進行訪問set:集合, 用來判斷某一個元素是不是在一個組裡面,使用的比較少map:映射,相當於字典,把一個值對應成另一個值,如果想建立字典的話使用它好了string、vector、list、deque、set 是有序容器 1.string string
Time of Update: 2018-12-05
跟蹤自己的類//輸出重新導向class Channel{public: Channel(ostream* os = &cout) : Trace_File(os) { } void Reset(ostream *os) { Trace_File = os;}private: friend class Trace; ostream* Trace_File;};通過重新導向實現class Trace{public: Trace(const char *s, Channel *c) :
Time of Update: 2018-12-05
類的核查表1、你的類需要一個建構函式嗎?2、你的資料成員是私人的嗎?3、你的類需要一個午餐的建構函式嗎?4、是不是每個建構函式初始化所有的資料成員?5、類需要解構函式嗎?6、類需要一個解構函式嗎?7、你的類需要複製建構函式嗎?8、你的類需要一個賦值操作符嗎?9、你的賦值操作符能正確地將對象賦給對象本身嗎?10、你的類需要定義關係操作符嗎?11、記得在賦值構函數和賦值操作符的參數類型中加上const了嗎?12、如果函數有引用參數,它們應該是const引用嗎?
Time of Update: 2018-12-05
異常處理相關內容總結auto_ptr類模板:auto_ptr對象只能儲存一個指向對象的指標,並且不能用於指向動態分配的數組,使用auto_ptr對象指向動態分配的數組會導致未定義的運行時行為1、auto_ptr 可以用於為異常安全進行記憶體配置2、auto_ptr可以儲存任何類型指標的模板auto_ptr<int> p(new int(42));auto_ptr<string> p(new
Time of Update: 2018-12-05
首先,C++標準中提到,一個編譯單元[translation unit]是指一個.cpp檔案以及它所include的所有.h檔案,.h檔案裡的代碼將會被擴充到包含它的.cpp檔案裡,然後編譯器編譯該.cpp檔案為一個.obj檔案,後者擁有PE[Portable
Time of Update: 2018-12-05
函數匹配與函數模板如果重載函數中既有普通函數又有函數模板,確定函數調用步驟如下:1、為這個函數名建立候選函數集合,包括:a、與被調用函數名字相同的任意普通函數b、任意函數模板執行個體化,在其中,模板實參推斷髮現了與調用中所用函數實參想匹配的模板實參2、確定哪些普通函數是可行的。候選集合中的每個模板執行個體都是可行的,因為模板實參推斷保證函數可以被調用3、如果需要轉換來進行調用,根據轉換的種類排列可行函數,記住,調用模板函數的執行個體所允許的轉換是有限的a、如果只有一個函數可選,就調用這個函數b、
Time of Update: 2018-12-05
控制代碼類舉例實現Handle.h標頭檔:#ifndef HANDLE_H_H#define HANDLE_H_Hclass Point{public:Point() : xval(0), yval(0) { }Point(int x, int y) : xval(x), yval(y) { }int x() const { return xval; }int y() const { return yval; }Point& x(int xv) { xval = xv; return *