Time of Update: 2018-12-03
如果不想犯下面錯誤最好的做法是,先把每一個類都定義好後,再寫函數實現部分(本例中將void A::funcA(B* inB)就放到了最後實現),寫在前面的類,需要使用後面的類的時候只需要聲明一下(像本例中的class B;放在A類前一樣),但使用的時候只能是以指標的形式出現! 註:其實把訪問放到實現檔案(CPP)中會自然避免這個問題,寫到標頭檔中便不能訪問成員且實現的代碼也比較多,也不好實現成Inline函數。 #ifndef TESTCLASS_H#define
Time of Update: 2018-12-03
這個題目有點大,但我腦子裡的東西的確很多,值得寫這麼大的一個題目。但是以我目前的水平,可能還難以把所有我思考的東西表達出來。因此由淺入深,先寫幾篇拋磚引玉的東西。 計劃寫先寫三個部分——生產者和消費者、Pull模式與Push模式、事件的故事。 這些思想主要形成於我在實際變成中的思考,但能夠形成文字,則得益於我在講授C#課程時與學員們的交流。因此,在這裡感謝所有聽過我的課程、並與我進行交流甚至對我的很多概念提出質疑的朋友! 這些思想適用於有2~3年實際開發經驗的程式員,初學者如果能夠理解
Time of Update: 2018-12-03
用C#建立可拖動表單原著:lover_P 所謂“可拖動表單”就是無需拖動標題列就可以拖動的表單,這在一個沒有標題列的表單上是一種非常有用的技術。關於這一方面的技巧,網上已經有很多介紹,但都不是很詳盡,有些實現也不夠簡潔。最主要的,這些介紹大多是大片大片的原始碼,很少講解;初學者學期來恐怕要費些力氣(我在學習這個技巧的時候就很痛苦)。在這裡,我對這個技巧進行了一個詳細的講解,相信各位初學者朋友可以學會如何製作可拖動表單。
Time of Update: 2018-12-03
http://blog.csdn.net/waterboy/archive/2004/08/24/83316.aspx************************************************************** C++語言五子棋來源程式 * 南陽理工學院電腦系01612班大鵬課程設計作品 * 運行環境:TC3.0 (vc6.0不支援畫圖函數,無法畫出棋盤和棋子) * Email:ypsky@mail2.nyist.net *********************
Time of Update: 2018-12-03
本文的主旨是介紹如何在 Linux 下使用 C 編譯器和其他 C 編程工具, 而非 C 語言編程的教程. 在本文中你將學到以下知識: 什麼是 C GNU C 編譯器 用 gdb 來調試GCC應用程式 你也能看到隨 Linux 發行的其他有用的 C 編程工具. 這些工具包括來源程式美化程式(pretty print programs), 附加的調試工具, 函數原型自動產生工具(automatic function prototypers). ----------------------------
Time of Update: 2018-12-03
最近看了<<重構:改善現有代碼...>>裡面的JAVA人寫了一個測試案例,吹噓用到了JAVA反射等"進階功能",我也寫一些測試代碼看看.首先是代表效能資料的類:class CapabilityCount {public: static void Out(); char* m_clue; CapabilityCount *m_pre; DWORD m_frequency; DWORD m_times;static
Time of Update: 2018-12-03
今天遇到一個小問題,要將字串直接寫入記憶體,例如:"ce96ed21",寫如記憶體後,成為"ce 96 ed 21" 的十六進位顯示。經過一番實驗,成果如下: #include <string>using namespace std;void SetStrToMem(string str, char* mem){ for (string::size_type ix=0; ix!=str.size(); ix=ix+2) { basic_string <char>
Time of Update: 2018-12-03
《Expert C Programming》(《C專家編程》中提到C語言聲明的優先順序規則如下:A 聲明從它的名字開始讀取,然後按照優先順序順序依次讀取;B 優先順序從高到低依次是: B.1 聲明中被括弧括起來的那部分; B.2 尾碼操作符:括弧()表示這是一個函數,而方括弧[]表示這是一個數組; B.3 首碼操作符:星號*標識“指向...的指標”;C
Time of Update: 2018-12-03
C# 判斷 SqlDataReader 執行個體是否包含查詢資料庫表的列。在寫資料庫操作類方法時,假如需要把SqlDataReader 的執行個體,填充到實體中。而次查詢資料表的列又不是固定的,所以在填充前需要判斷 SqlDataReader 的執行個體 是否包含有列,才可以適應查詢列數不固定,也可以動態填充,提高程式的重用性。 /// <summary> /// 檢查 SqlDataReader 執行個體中是否包含資料表的列 /
Time of Update: 2018-12-03
// EX_EXAM.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>using namespace std;class A{public:virtual void foo() { cout<<"A foo"<<endl; }void pp() { cout<<"A pp"<<endl; }};class B: public A{public:void foo()
Time of Update: 2018-12-03
首先需要明白:(1) 成員函數的覆蓋:子類對父類的成員函數覆蓋,必須函數名稱一致,參數一致,傳回值一致(當然編譯器決定);(2) 成員變數的覆蓋:子類覆蓋的僅僅是繼承來的那個成員變數,而並不改變原來父類中的變數;(3) 建構函式從基類開始構造,各個類的同名變數沒有形成覆蓋,都是單獨的變數。子類調用就近原則,如果父類存在相關介面則優先調用,如果父類不存在則調用祖父類介面;當然,如果自己有則首先調用自己的函數;我們先來看一段程式:#include
Time of Update: 2018-12-03
Overriding the Virtual Mechanism覆蓋虛函數機制In some cases, we want to override the virtual mechanism and force a call to use a particular version of a virtual function. We can do so by using the scope
Time of Update: 2018-12-03
直接上代碼,兩種方式:map<string,int> m_map;m_map.insert(map<string,int>::value_type("hello",5));m_map.insert(make_pair("hello",5)); 也就是說,insert後面的資料是pair類型或者是value_type類型了,然而對C++有瞭解的人都明白,其實value_type和pair<const
Time of Update: 2018-12-03
C2059 Error Using extern "C" in .C Source FilesThe information to this article applies to: The Microsoft C/C++ Compiler included with: - Microsoft Visual C++, 32-bit Edition, versions 2.0, 2.1, 2.2, 4.0, 4.1, 5.0SUMMARYUse of "extern "C"" in
Time of Update: 2018-12-03
#include <iostream>#include <vector>using namespace std;void calc(vector<int>& v);void print_result(const vector<int>& v);int main() {vector<int> v;calc(v);print_result(v);return 0;}void
Time of Update: 2018-12-03
蒙特卡羅(Monte Carlo)演算法計算圓周率的主要思想:給定邊長為R的正方形,畫其內切圓,然後在正方形內隨機打點,設點落在圓內的概為P,則根據機率學原理:P = 圓面積 / 正方形面積 = PI * R * R / 2R * 2R = PI / 4。即 PI=4P。這樣,當隨機打點足夠多時,統計出來的機率就非常接近於PI的四分之一了。#include <iostream>#include <cstdlib>#include <ctime>using
Time of Update: 2018-12-03
C/C++中八位元的表達方法1.八位元的表達方法C/C++語言中,如何表達一個八位元呢?如果這個數是 876,我們可以斷定它不是八位元,因為八位元中不可能出7以上的阿拉伯數字。但如果這個數是123、是567,或12345670,那麼它是八位元還是10進位數,都有可能。所以,
Time of Update: 2018-12-03
無意中翻出了N年前寫的遞迴-回溯法求解8皇后問題,幹粹塞到部落格中吧。#include <stdio.h>#include <conio.h>#include <math.h>#define QUEENS 8 // 記錄解的序號的全域變數。int iCount = 0; // 記錄皇后在各列上的置放位置的全域數組。int Site[QUEENS]; // 遞迴求解的函數。void Queen(int n); // 輸出一個解。void Output(); //
Time of Update: 2018-12-03
關於c++的編譯器現在有很多,各有所長。不可能每個人都全部用過。 我想統計一下現在的主流編譯器都有什麼。linux,windows,dos下的什麼編譯器最流行,也最好!請各位發表意見並給出你所用的編譯器的好處。 ---------------------------------------------------------------
Time of Update: 2018-12-03
C++中的運算子和計算順序1.運算子和其優先順序 優先順序運算子結合律 從 高 到 低 排 列( ) [ ] -> .從左至右! ~ ++ -- (類型) sizeof + - * &從右至左 * / %從左至右+ -從左至右<< >>從左至右< <= > >=從左至右== !=從左至右&從左至右^從左至右|從左至右&&從左至右||從右至左?:從右至左= += -= *= /= %= &= ^