在編寫程式時,我們可以對類的成員使用不同的存取修飾詞,從而定義它們的存取層級。公有成員C#中的公有成員提供了類的外部介面,允許類的使用者從外部進行訪問。公有成員的修飾符為public,這是限制最少的一種訪問方式。私人成員C#中的私人成員僅限於類中的成員可以訪問,從類的外部存取私人成員是不合法的。如果在聲明中沒有出現成員的存取修飾詞,按照預設成員為私人的。私人成員的修飾符為private。保護成員為了方便衍生類別的訪問,又希望成員對於外界是隱藏的,這時可以使用protected修飾符,聲明成員為保
Visual Studio安裝程式會把Visual Studio的共用庫放在一個稱為"並列緩衝(side-by-side cache)"的地方,那怎樣才能有效地利用它呢?在文章開頭,先看一個樣本。在命令列中,建立一個C++源檔案,輸入例1中的代碼。(雖然此處使用的是C++/CLI文法,但不管你是用C++/CLI、託管C++、或本地C++,都不影響要講解的主題。)例1:lib.cppusing namespace System;public ref class Test{
在學習這一章內容前我們已經學習過了類的建構函式和解構函式的相關知識,對於普通類型的對象來說,他們之間的複製是很簡單的,例如:int a = 10;int b =a;自己定義的類的對象同樣是對象,誰也不能阻止我們用以下的方式進行複製,例如:#include <iostream>using namespace std;class Test{public: Test(int temp) { p1=temp; }protected: int
一、緒論當微軟推出VS.NET7實現了可擴充的託管C++後,C++程式員們反映不一。儘管大部分的程式員對於能夠繼續使用C++感到很欣慰,但幾乎所有的人對於託管C++提供的晦澀文法感到很痛苦。微軟明顯從反饋中感覺到託管C++不是那麼成功。2003年10月6日,ECMA(歐洲電腦製造商協會)宣布成立專家組,負責結合ISO標準C++與通用語言,開發一個可擴充語言的標準,這個新的可擴充語言被稱為C++/CLI標準。這個標準將被VS.NET2005的C++編譯器支援。二、老文法存在的問題1、晦澀繁瑣的文法
·C++ Builder 初學問答(一)·C++ Builder 初學問答(二)·C++ Builder 初學問答(三)·C++ Builder 初學問答(四)·C++ Builder 初學問答(五)·C++ Builder 初學問答(六)·C++ Builder 初學問答(七)·C++ Builder 初學問答(八)·C++ Builder 初學問答
到目前為止,我們的程式還只能按照編寫的順序執行,中途不能發生任何變化。然而,實際生活中並非所有的事情都是按部就班地進行,程式也是一樣。為了適應自己的需要,我們經常必須要轉移或者改變程式執行的順序,達到這些目的的語句叫做流程式控制制語句。和大多數程式設計語言相似,在程式模組中,C#可以通過條件陳述式控製程序的流程,從而形成程式的分支和迴圈。C#中提供了以下控制關鍵字:●選擇控制:if、else、switch、case●迴圈控制:while、do、for、foreach●跳躍陳述式:break、co
條件編譯指令有以下四種:●#if●#elfi●#else●#endif這些條件編譯指令用來有條件地將部分程式段包括進來或排除在外。它們和C#中的if語句有類似的作用。你可以在指令中使用邏輯操作符與(&&),或(||)和取反操作符(!)等。它們在程式中的出現的先後順序必須是這樣:一條#if語句(必須有)零或多條#elif語句零或一條#else語句一條#endif語句(必須有)下面我們通過一些例子來說明它們的用法。#define Debugclass Class1{#if
操作符(operator)用於操作資料。操作符進行計算、檢查等式、進行賦值、操作變數和進行其它更奇怪的工作。C++中有許多操作符,這裡不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符說明舉例 算術運算子 + 加 x=y+z; - 減 x=y-z; * 乘 x=y*z; / 除 x=y/z; 賦值運算子 = 賦值 x=10; += 賦值與和 x+=10;(等於x=x+10;) -= 賦值與減 x-=10; *= 賦值與乘 x*=10; \= 賦值與除 x\=10; &
對於崇尚中庸之道的朋友,就不必理會這篇文章了。簡單說明一下目前網路安裝的簡單過程:安裝嚮導cbuilder2007trialsetup.exe檢測是否有.net
引用計數指標是否能有效地回收,對系統意外關機之後資料的恢複來說至關重要,關鍵是要避免對象複製。怎樣從災難性故障中,恢複一個長期運行、系統級的後台守護進程或者服務,在如今的軟體設計過程中,已成為了一個重要的考慮因素。當這些軟體是由C++語言編成,並使用了引用計數的智能指標時,那麼,智能指標的有效回收,對系統是否具有可伸縮級的恢複能力、甚至正確地繼續未完成的操作來說,都顯得至關重要。在本文中,描述了一種方法,可從關機之後的軟體恢複中,有效地回收引用計數指標,而且此方法在記憶體佔用方面也非常高效,這種
簡介從處理器的角度來看,線程是一個單獨的執行流程,每個線程都有各自的寄存器及堆棧上下文。通常來說,在系統中只有一個處理器或處理器只有一個核心時,運行時環境在一個時間片內只能執行一個線程,當線程未能擷取所需的資源時,線程的執行就會被中斷,且會一直等到相關操作的完成,如I/O;或者線上程用完它的處理器時間片時,也會被中斷下來等待。而處理器把執行流程從一個線程切換到另一個線程時,這稱為"環境切換";當某個線程變為"阻塞"狀態,從而執行另一個線程時,系統有效地減少
多年以來,只要提到編寫Windows服務,就會想到用Visual C++編寫,同時,這也是其中一件C++程式員可以做,而VB程式員不可以做的事情。以前,我們只稱其為"服務"或"NT服務",現在,它們被命名為"Windows服務",而且用VB.NET或C#也可以很容易地編寫。但是,如果你想用託管C++來編寫呢?畢竟,大多數有經驗的Visual
今天做一個項目中用到把DataSet對象序列化成檔案,並上傳到伺服器,不過產生的檔案比較大,就想 著壓縮一下,找了一下資料,用GZipStream來壓縮了一下,效果還是非常理想的。現在把這部分代碼整理 了一下:using System.Data;using System.IO;using System.IO.Compression;using System.Runtime.Serialization;using
二、結構指標結構指標是指向結構的指標。它由一個加在結構變數名前的"*" 操作符來定義,例如用前面已說明的結構定義一個結構指標如下: struct string{ char name[8]; char sex[2]; int age; char addr[40]; }*student; 也可省略結構指標名只作結構說明,然後再用下面的語句定義結構指標。 struct string *student;
概述本文是《Effective C#》一書第七節的讀書筆記。通過這篇文章,我主要想向大家說明一個我們平時 可能不太會注意到的問題:建立具有常量性和原子性的實值型別。從類型設計談起從Class到Struct假如我們要設計一個儲存收信人地址的類型(Type), 我們管這個類型叫 Address。它應該包含這樣幾 個屬性:Province 省City 市Zip 郵編要求對Zip的格式進行控制(必須全為數字,且為6位),大家該如何設計呢?我想很多人會寫成這樣吧
在跨平台的開發過程中,很多問題都和編譯器有關。因此我們先來聊聊編譯器相關的問題 。★編譯器的選擇首先,GCC是優先要考慮支援的,因為幾乎所有作業系統平台都有GCC可用。它基本上成了 一個通用的編譯器了。如果你的代碼在A平台的GCC能夠編譯通過,之後拿到B平台用類似版本 的GCC編譯,一般也不會有太大問題。因此GCC是肯定要考慮支援的。其次,要考慮是否支援本地編譯器。所謂本地編譯器就是作業系統廠商自產的編譯器。例 如相對於Windows的本地編譯器就是Visual
14.1.1
C#中方法的參數有四種類型:●值參數,不含任何修飾符。●引用型參數,以ref修飾符聲明。●輸出參數,以out修飾符聲明。●數組型參數,以params修飾符聲明。11.2.1 值參數當利用值向方法傳遞參數時,編譯器給實參的值做一份拷貝,並且將此拷貝傳遞給該方法。被調用的方法不傳經修改記憶體中實參的值,所以使用值參數時,可以保證實際值是安全的。在調用方法時,如果形式化參數的類型是值參數的話,調用的實參的值必須保證是正確的值運算式。在下面的例子中,程式員並沒有實現他希望交換值的目的:程式清單11-2:
本例包括1.用戶端用xmlHTTP 向伺服器頁面發送請求2.伺服器頁面後台用C#中DataSet實現資料庫的操作 並得到結果3.用戶端用xmlDOC 得到xmlHTTP返回的結果 並對結果進行操作附錄XMLHTTP的常用方法和屬性XMLDOC的常用方法和屬性=========================發送xmlHttp請求到伺服器端=========================var xmlhttp = new
雖然很難找到一本不討論多態性的C++書籍或雜誌,但是,大多數這類討論使多態性和C++虛函數的使用看起來很難。我打算在這篇文章中通過從幾個方面和結合一些例子使讀者理解在C++中的虛函數實現技術。說明一點,寫這篇文章只是想和大家交流學習經驗因為本人學識淺薄,難免有一些錯誤和不足,希望大家批評和指正,在此深表感謝!一、基本概念首先,C++通過虛函數實現多態."無論發送訊息的對象屬於什麼類,它們均發送具有同一形式的訊息,對訊息的處理方式可能隨接手訊息的對象而變"的處理方式被稱為多態性