Time of Update: 2017-02-27
we have four specific castingoperators:dynamic_cast, reinterpret_cast, static_cast and const_cast. Their format is to follow the new type enclosed between angle-brackets (<>) and immediately after, the expression to be converted between
Time of Update: 2017-02-27
iostreams中共有四個狀態標誌位定義在ios_base中,具體如下:namespace std { class ios_base { public: typedef implementation-defined-bitmask-type iostate; static const iostate badbit; static const iostate eofbit; static const
Time of Update: 2017-02-27
C#介面是一個讓很多初學者容易迷糊的東西,用起來好象很簡單,定義介面,然後在裡面定義方法, 通過繼承與他的子類來完成具體的實現。但沒有真正認識介面的作用的時候就覺得用介面是多此一舉,當 然你這樣想是絕對錯誤的。在軟體設計中有一個非常重要的原則就是:面向介面編程,依賴與介面或抽象 層。可見介面在真正的開發中是多麼的重要。在之前C#編程利器之一:類(Class)一文裡介紹了類的相關知識,本文主要介紹OO編程中的另一個重要 知識點--介面。在某種程度上說,介面也是類,一種特殊的類或抽象類別。
Time of Update: 2017-02-27
物件導向的程式設計(Object-Oriented Programming,簡記為OOP)是一種功能非常強大的編程方法, 立意於建立軟體重用代碼,以類為基礎去思考編程問題。類是OOP中的核心組成元素,通常都是使用類來 “封裝”對象(屬性、行為)。在經典圖書《代碼大全》裡定義:“建立高品質的類,第一步,可能也是 最重要的一步,就是建立一個好的介面。這也包括了建立一個可以通過介面來展現的合理的抽象,並確保
Time of Update: 2017-02-27
讀者可能懷疑:連if、for、while、goto、switch這樣簡單的東西也要探討編程風格,是不是小題大做?我真的發覺很多程式員用隱含錯誤的方式寫運算式和基本語句,我自己也犯過類似的錯誤。運算式和語句都屬於C++/C的短語結構文法。它們看似簡單,但使用時隱患比較多。本章歸納了正確使用運算式和語句的一些規則與建議。4.1 運算子的優先順序C++/C語言的運算子有數十個,運算子的優先順序與結合律如表4-1所示。注意一元運算子 + - * 的優先順序高於對應的二元運算子。
Time of Update: 2017-02-27
回顧“被動方式”開發在C#對遊戲手柄的編程開發-API篇(1)這篇文章中我們介紹了“被動方式”的開發。在此方式下,我們 的程式只扮演一個訊息接收者。系統會定時告訴我們某個遊戲手柄當前的狀態,我們的程式接收到後再按 實際需要進行處理即可。但如果你是一個細心的人,你會發現如果直接按訊息事件處理的話會存在一個問 題,如我們按下某個鍵(比如向上的方向鍵)然後放開時,對於我們“人”來說,我們按下與彈起的這兩
Time of Update: 2017-02-27
一、委託當我們需要把方法做為參數傳遞給其他方法的時候,就需要使用委託。因為有時候,我們要操作的對象,不是針對資料進行的,而是針對某個方法進行的操作。我們還是來以代碼入手using System;namespace gosoa.com.cn{ public class test { public delegate string GetAString(); public static void Main() { int x=10;
Time of Update: 2017-02-27
最近在做匯入Excel資料的時候,要檢驗資料是否重複:1、要檢驗Excel資料本身是否有重複?2、Excel中的資料是否與資料庫中的資料重複?一、檢驗Excel中資料是否重複的方式有:1、將Table中的資料使用select語句來過濾(此處略,可以參考二)。2、使用for迴圈來手動核對,代碼如下:#region 記錄Excel中的重複列 /// <summary> /// 記錄Excel中的重複列 /// </summary> ///
Time of Update: 2017-02-27
概要字串是什嗎?我們認為,與其說它是一個類,不如說它只是一個ADT(抽象資料類型)。目前C++中的 字串類目前廣泛採用的C++字串類有二:std::string(basic_string,由STL提供)、CString(由MFC或者WTL提供 )。它們的實現非常類似,都是帶引用計數的、基於線性資料結構的字串。不過SGI STL的Rope打破了這個規矩。它採用了一 種基於樹結構的組織方式來實現字串。如何理解字串只是ADT?我們知道,基於值的容器主要有:動 態數組(std::vector)雙向鏈表(
Time of Update: 2017-02-27
17.9 座標變換預設情況下,座標系的原點位於視圖地區的左上方,水平方向為x軸,豎直方向為y軸。但有時候我們 需要改變座標軸的位置或方向,這時就需要座標變換。常用的座標變換有平移變換、旋轉變換和伸縮變換 三種。17.9.1 平移變換平移變換是指把座標系的原點由一個位置平移到另一個位置,我們可以通過Graphics 類的 TranslateTransform()方法實現平移變換。下面我們通過一個樣本來說明怎樣進行平移變換。圖17-16
Time of Update: 2017-02-27
VC++2008 調試通過// codetest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;class Observer;class Subject{public:virtual void Attach(Observer *o)=0;virtual void Change()=0;virtual char
Time of Update: 2017-02-27
在設計一個類的時候,通常是將類的定義及類成員函數的聲明放到標頭檔(即.h檔案)中,將類中成員函數的實現放到源檔案(即.cpp)中。對於animal類需要animal.h和animal.cpp兩個檔案,同樣,對於fish類需要fish.h和fish.cpp。對於main()函數,我們把它單獨放到EX10.cpp檔案中。往一個現有工程添加標頭檔(.h檔案)或源檔案(.cpp檔案)有兩種方式:一種是在開啟的工程中,單擊【File】→【New】,在左邊的Files標籤頁下,選擇C++
Time of Update: 2017-02-27
字串數組:using System;class MyClass{ static void Main() { string[] arr = new string[3] { "aa", "bb", "cc" }; foreach (string s in arr) Console.WriteLine(s); // aa/bb/cc Console.ReadKey(); }}整數數組:using
Time of Update: 2017-02-27
在C++編程中,我們進程會用到數組,這看起來很簡單,因為,數組就是儲存相同類型元素的集合嘛,不過, 當你還沒考慮到數組的地址問題時,一切都是簡單的,如果你接觸了數組中的地址概念,也許你會改變你的想 法。下面,我列出幾個例子,看看這些例子輸出的會是什麼:首先給出數組的定義: int a[10];1. cout<<a<<endl;2. cout<<&a<<endl;3. cout<<a +1<
Time of Update: 2017-02-27
堆排序包含兩個步驟:第一步: 是建立大頂堆(從大到小排序)或小頂堆(從小到大排序), 從下往上建立; 如建堆時, s是從大到小;第二步: 是依次交換堆頂和堆底, 並把交換後的堆底輸出, 只排列剩餘的堆, 從上往下建立; 如構造時, s始終是1;堆排序(Heap Sort)的時間複雜度是O(nlogn), 最壞情況下也是如此.而快速排序(Quick Sort), 若初始記錄序列有序, 快速排序將退化為起泡排序(Bubble Sort),
Time of Update: 2017-02-27
鄰接表有向圖的介紹鄰接表有向圖是指通過鄰接表表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。上圖右邊的矩陣是G2在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點所
Time of Update: 2017-02-27
函數名: gcvt功能: 把浮點數轉換成字串用法: char *gcvt(double value, int ndigit, char *buf);程式例:#include#includeint main(void){char str[25];double num;int sig = 5; /* significant digits *//* a regular number */num = 9.876;gcvt(num, sig, str);printf("string =
Time of Update: 2017-02-27
main()主函數每一C程式都必須有一main()函數, 可以根據自己的愛好把它放在程式的某個地方。有些程式員把它放在最前面, 而另一些程式員把它放在最後面, 無論放在哪個地方, 以下幾點說明都是適合的。1.main()參數在Turbo C2.0啟動過程中, 傳遞main()函數三個參數: argc, argv和env。* argc: 整數, 為傳給main()的命令列參數個數。* argv: 字串數組。在DOS 3.X 版本中, argv[0] 為程式啟動並執行全路徑名; 對DOS
Time of Update: 2017-02-27
可能大家都知道C語言中的隨機函數random,可是random函數並不是ANSI C標準,所以說,random函數不能在gcc,vc等編譯器下編譯通過。那麼怎麼實現C語言中的隨機函數呢?除了random函數,還有一個rand函數,也是一個隨機函數,可以產生從0到rand_max的隨機數。#include <stdio.h>#include <stdlib.h>int main(){int k;k=rand();printf("%d\n",
Time of Update: 2017-02-27
函數名: cabs功能: 計算複數的絕對值用法: double cabs(struct complex z);程式例:#include#includeint main(void){struct complex z;double val;z.x = 2.0;z.y = 1.0;val = cabs(z);printf("The absolute value of %.2lfi %.2lfj is %.2lf", z.x, z.y, val);return 0;}函數名: