Time of Update: 2018-12-06
私人成員變數的概念,在腦海中的現象是,以private關鍵字聲明,是類的實現部分,不對外公開,不能在對象外部存取對象的私人成員變數.然而,在實現拷貝建構函式和賦值符函數時,在函數裡利用對象直接存取了私人成員變數,因而,產生了困惑.下面以具體執行個體進行說明: 1 class CTest { 2 public: 3 CTest(int i); 4 CTest(const CTest& rhs); 5 CTest& operator=(const
Time of Update: 2018-12-06
在C++中,調用拷貝建構函式有三種情況:1.一個對象作為函數參數,以值傳遞的方式傳入函數體.2.一個對象作為函數傳回值,以值傳遞的方式從函數返回.3.一個對象用於給另外一個對象進行初始化(複製初始化).拷貝建構函式必須以引用的形式傳遞(參數為引用值).其原因如下:當一個對象以傳遞值的方式傳一個函數的時候,拷貝建構函式自動的調用來產生函數中的對象.這樣會導致無限迴圈地調用拷貝建構函式,直至棧溢出.以前,一直有個誤解,以為以同類型的對象調用"="時,就會調用賦值符.參看以下的例子: 1 class
Time of Update: 2018-12-06
索引器是一種特殊的類成員,它能夠讓對象以類似數組的方式來存取,使程式看起來更為直觀,更容易編寫。 1、索引器的定義 C#中的類成員可以是任意類型,包括數組和集合。當一個類包含了數組和集合成員時,索引器將大大簡化對數組或集合成員的存取操作。 定義索引器的方式與定義屬性有些類似,其一般形式如下: [修飾符] 資料類型 this[索引類型 index] { get{//獲得屬性的代碼}
Time of Update: 2018-12-06
C#與51單片機串口通訊51接受資料,PC發送資料。通過單片機的數位管將PC發送的16進位資料顯示出來。51接受資料代碼:#include <reg51.h>#include <string.h>#include <intrins.h>sbit LS138A = P2^2; //定義138解碼器的輸入A腳由P2.2控制sbit LS138B = P2^3; //定義138解碼器的輸入腳B由P2.3控制sbit LS138C = P2^4; //定義13
Time of Update: 2018-12-06
這應該不是第一次學C#了,以前曾經在圖書館借過C#方面的書,大體的感覺是與C++的文法有比較相似的一面,沒有在這方面做很多練習,自然就陌生了。回顧自己學習C++的曆程,卻也是經過了很多遍的學習與實踐的結合才掌握到如此程度的。C#應該也是如此。 其實在程式設計語言方面,掌握好幾門就已經足夠了。電腦領域的核心問題不在程式設計,而在演算法與資料結構設計。如果希望自己設計的軟體有良好的市場前景,關鍵還是在於頭腦。 借了本《C#大學教程》,感覺讀起來沒有什麼困難,
Time of Update: 2018-12-06
在MFC中,對話方塊的初始化採用的是重載虛函數OnInitialDialog的方法,在C#中可以直接在需要添加訊息的類中添加訊息處理函數。在對話方塊載入時調用的函數如下:1 private void Form1_Load(object sender, EventArgs e)2 {3 label1.Text = "C#";4 }MSDN中說明如下: Form.Load Event.NET Framework 4.5Occurs before a form is displayed for
Time of Update: 2018-12-06
當大家在寫WinFrom的時候,有時候要求右鍵選擇狀態只能選中一項,其它為不項中。 直接上代碼: 處理方法-- 1 /// <summary> 2 /// 設定右鍵菜單單選 3 /// </summary> 4 /// <param name="cms">參數-右鍵可選項類</param> 5 public void
Time of Update: 2018-12-06
zz from http://blog.csdn.net/xiaogelee/archive/2007/12/03/1914057.aspx被C#調用的DLL一般只需要把匯出的函數以適當的形式呈現即可調用,比如 extern "C" __declspec(dllexport) BOOL Integrate3 (){...},這樣的函數,在C#裡面聲明如:[DllImport("xxx.dll", CallingConvention =
Time of Update: 2018-12-06
利用OWC編寫的組件 其實已經有很多網上的現成的,但是用自己的可以隨意改動還是比較爽的,代碼功能不是很強,僅推出供大家學習:)using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using
Time of Update: 2018-12-06
交換排序的基本思想是:兩兩比較待排序記錄的關鍵字,發現兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止。 應用交換排序基本思想的主要排序方法有:冒泡排序和快速排序。冒泡排序1、排序方法 將被排序的記錄數組R[1..n]垂直排列,每個記錄R[i]看作是重量為R[i].key的氣泡。根據輕氣泡不能在重氣泡之下的原則,從下往上掃描數組R:凡掃描到違反本原則的輕氣泡,就使其向上"飄浮"。如此反覆進行,直到最後任何兩個氣泡都是輕者在上,重者在下為止。(1)初始 R[1..n]
Time of Update: 2018-12-06
從一個變數到另一個變數按值複製對象,而不是按引用複製對象(即以與結構相同的方式複製)可能非常複雜。因為一個對象可能包含許多個物件的引用,例如欄位、成員等,這將涉及許多煩人的處理操作。把每個成員從一個對象複製到另一個對象中可能不會成功,因為其中一些成員可能是參考型別。按照成員複製簡單的對象可以通過派生於System.Object的MemberwiseClone()方法來完成,這是一個受保護的方法,但很容易在對象上定義一個該方法的公用方法。這個方法提供的複製功能稱為陰影複製,因為它沒有考慮參考型別成
Time of Update: 2018-12-06
今天剛剛學C#,之前有上課,可是老師上課的時候我們都沒有書,所以都不會。現在老師都上到後面的表單程式了,但是C#的基礎我都不會,無奈之下只好自己來學習啦 學每一門語言都是從它最基本的語句來學起的。C# 的基礎資料型別 (Elementary Data Type)有很多啦,我們需要注意的是,bool型和string 已經從默默無聞的小嘍囉升級到基礎資料型別 (Elementary Data Type)之列了 ,還有就是,int 型變數的大小是 4 個位元組(原來C是2個)基礎資料型別
Time of Update: 2018-12-06
首先看看運算子多載的基本文法。要重載運算子,可以給類添加運算子類型成員(它們必須是static)。我們先看一個簡單的類: public class AddClass1 { public int val; }這僅是int值的一個封裝器(wrapper),但可以用於說明規則。對於這個類下面的代碼不能編譯: AddClass1 op1 = new AddClass1(); op1.val = 5;
Time of Update: 2018-12-06
C# 虛方法(virtual)覆蓋(override) - 隱藏(new) - 重載 using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace AppTest{ class Demo_virtual { static void Main(string[] args) { ////普通,這裡的
Time of Update: 2018-12-06
雖然用了這麼久的C#,用會用,但有些東西為什麼這麼用就不瞭解了。所以,決定持續鞏固梳理基礎~~~ 1.棧:棧是一個記憶體數組.2.堆:堆是一塊記憶體地區.3.實值型別:儲存在棧中.4.參考型別:存數在堆中.5.類:類是一個可以儲存資料並執行代碼的資料結構. 6.方法:/*****************方法是具有名稱的可執行代碼塊.可以使用方法名稱從別的地方執行代碼,也可把資料傳入方法並接受資料輸出.方法有兩個主要部分,方法頭和方法體.方法頭指定方法的特徵,方法是否返回資料,如果返回,返回什
Time of Update: 2018-12-06
今天學到了C#中的{n}運算子,感覺這個運算子就是對C++中%d運算子的一種改進,因為{n}運算子能夠指定其他清單中的第幾個,就比%d之類的運算子操作起來省力很多。我的常式: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace braceApplication 7 { 8 class Program 9 {10
Time of Update: 2018-12-06
兩種使用方法:1、在文本輸入框後加入Regex驗證控制項Regularexpression_r_rValidator。此種方法適用於WebForm中。在Validationexpression_r_r選項中,輸入驗證規則。在ControlToValidate選項中,選擇要驗證的控制項。在ErrorMesage選項中,輸入如果驗證沒有通過頁面要顯示的資訊。2、在隱藏代碼中使用,此方法適用於WinForm和WebForm中。這種方法要先加入聲明命名空間:using
Time of Update: 2018-12-06
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace Regular_Expression_1{ class Program { static void Main(string[] args) { Console.WriteLine(
Time of Update: 2018-12-06
標頭檔1、 define保護標頭檔的命名應基於其所在項目原始碼樹的全路徑。2、 標頭檔依賴使用前置聲明(forward declaration),盡量減少.h檔案中#include的數量。能依賴聲明的就不依賴定義。3、 內嵌函式只有當函數少於10行或更少時,才使用內聯類型。4、 -inl.h複雜內嵌函式的定義,應放在-inl.h檔案中。5、 函數定義順序輸入參數在前,輸出參數在後。6、
Time of Update: 2018-12-06
C++嵌入python 把python的include/libs目錄分別加到vc的include/lib directories中去。另外,由於python沒有提供debug lib,體地說,就是沒有提供python25_d.lib了。你可以自己編譯python的原始碼來得到python25_d.lib。所以,如果你想要在debug下運行程式的話,你要把pyconfig.h(在python25/include/目錄下)的大概是在283行,把pragma