Time of Update: 2018-12-07
建構函式初始化列表以一個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟一個放在括弧中的初始化式。例如:class CExample {public: int a; float b; //建構函式初始化列表 CExample(): a(0),b(8.8) {} //建構函式內部賦值 CExample() { a=0; b=8.8; }};上面的例子中兩個建構函式的結果是一樣的。上面的建構函式(使用初始化
Time of Update: 2018-12-07
關於這個問題是引起來源於一則面試問題:引用型成員變數如何初始化?回答的不是很確定,於是對這個問題研究一下。1、普通的變數:一般不考慮啥效率的情況下 可以在建構函式中進行賦值。考慮一下效率的可以再建構函式的初始化列表中進行。class CA{public: int data; ……public: CA(); ……};CA::CA():data(0)//……#1……初始化列表方式{ //data = 0;//……#1……賦值方式};2、static
Time of Update: 2018-12-07
現在來看看對於產生式有多個選項的情形,例如WSP可以是空格SP或者跳格HTAB。對於這種情況,一般是向前看一個字元,根據這個字元來選擇產生式。當然,如果兩個產生式的起始字元都一樣,那麼只向前看一個字元就不夠了,這種情況下需要向前看2個或者更多。WSP、c-nl和element的文法解析程式: /* This file is one of the component a Context-free Grammar Parser Generator, which accept a
Time of Update: 2018-12-07
不知道你們有沒有看過string類型變數的成員資料,在string變數中好像真正儲存字串的是一個叫_Ptr的指標,它指向string所儲存的字串首地址。當string變數被定義時,如果未初始化,_Ptr就是一個指向NULL的指標,而且_Ptr看起來像一個const
Time of Update: 2018-12-07
namespace refout參數{ class Program { static void Main(string[] args) { int age = 20; int age1 = 20; IncAge(ref age);//函數調用也要加ref IncAge1(out
Time of Update: 2018-12-07
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性:封裝、繼承、多態,真正領悟設計模式的精髓是可能一個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用C++寫了個小例子,加深一下理解。主要參考《大話設計模式》和《設計模式:可複用物件導向軟體的基礎》兩本書。本文介紹原廠模式的實現。 原廠模式屬於建立型模式,大致可以分為三類,簡單原廠模式、Factory
Time of Update: 2018-12-07
動態給一個對象額外添加一些額外職責。參與者: Component:定義對象介面,可以給這些對象動態添加職責。 ConcreteComponent:定義一個對象,可以給這個對象添加職責。 Decorator:維持一個指向Component對象的指標,並定義一個與Component介面一致的介面。
Time of Update: 2018-12-07
對於每一個C程式員,不論是菜鳥、教師還是資深程式員,Dennis M. Ritchie所寫的The Development of the C Language,應該是必讀的文獻。通過google其中文版(google C語言的發展史),最前面的翻譯的東西令我不爽,所以自己翻譯一下備用。yqj2065的翻譯中,使用了若干你不能夠原封不動抄到你的書籍和文章中的字眼,還添加了一些私活;也沒有推敲文字是否優雅,大致通順即可,關鍵是意思要正確。信雅達——信是第一位的。C語言的發展史-1 、C語言的發展史-
Time of Update: 2018-12-07
只能說是實踐,因為太簡單。這個實踐的產生是由於中國Linux論壇上一位rings的朋友的發貼。它提供了一個如何用C編寫Python擴充模組的詳細過程。[精華] 在windows上擴充python 。不過,那種方法要使用VC++環境,則我當時也沒有。我有的環境是windows 98+cygwin,上面所提到的方法在我的環境下是無法成功的。因此我求助於google,找到一篇文章:Python + Windows + distutils + SWIG + gcc MinGW or “Creating
Time of Update: 2018-12-07
WPF大行其道,開發使用者介面確實非常方便。有時候需要調用很多以前用C++編寫的DLL庫,這就涉及到C sharp 中如何調用C++編寫的DLL的問題。一番嘗試之後,發現調用其實比較簡單。步驟記錄如下:1:本例中DLL名稱為:Test.dll,提供的介面函數也很簡單:兩數相加 返回和值(int AddFunc(int a, int b)) 將DLL拷貝到exe將要產生的檔案夾下。2:C sharp 代碼中記得添加using System.Runtime.InteropServices(
Time of Update: 2018-12-07
// 三次貝塞爾.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <iostream>#include <vector>#define NUM_STEPS 30 //越大,曲線越密,越逼近using namespace std;class CvPoint{public:float x;float
Time of Update: 2018-12-07
#include<stdio.h>#include<math.h>#include<stdlib.h>int max(int a ,int b){ return a > b ? a :b;}/* 該函數返回01 背包執行後的F[][]二維數組 @param N 代筆物體的個數 V 背包的容量 c[] 每個物體的消耗的容量 w[] 每個物體的權值 */void
Time of Update: 2018-12-07
由於工程項目需要,要在全屏Form中加上鍵盤ESC的響應,實現的效果就是:全屏中press鍵盤上的Escape鍵,程式結束。原本覺得挺簡單的功能,卻搗鼓了一會兒才解決。大致總結一下步驟:首先在form的designer下加上 this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form_KeyPress);然後寫響應函數 private void Form_KeyPress(object
Time of Update: 2018-12-07
很多初學C語言的人,一開始都會有求和以及求積的程式,如果用簡單的將輸入的數一個個加起來那樣是很繁瑣的,當然效率是高的,但是程式看起來非常不簡潔!如果你學慣用遞迴方式求解,你會發現一切都是那麼簡單!下面的例子就是用遞迴方式求和以及求積。#include<stdio.h> #include<stdlib.h> #define N 10 float g(float a[],int n); /*求和函數*/ float f(float a[],int n); /*求積函數*/
Time of Update: 2018-12-07
1、類型封裝 類 --> 對象 描述 : (1)屬性 (2)行為 ---屬性和行為是屬於類的 建立對象。2、建構函式 --- 初始化對象 (1)建構函式名字必須與類名一樣 (2)建構函式不能寫傳回型別 建構函式在建立對象時,系統自動調用 建構函式允許重載,按使用者要求,適應多種情況 當類中一個建構函式都沒有的時候,系統提供預設無參的建構函式
Time of Update: 2018-12-07
1、數組指標聲明的時候不用初始化,聲明以後就指向數組的首地址了,以後不允許改變,所以,數組指標可以認為是一個常量,一旦賦值就不能改變2、char數組 (1)列印char數組的名字即列印數組的內容 (2)對於字元數組,'\0'是結束標誌 字元 '\0' = 數組0 可以認為字元'\0'的ASCII碼就是0 要儲存5個字元,就要把字元數組長度聲明為6 (3)strcpy()和memset() 給一個字串數組賦值
Time of Update: 2018-12-07
#include <iostream>#include "buy.h"#include "book.h"using namespace std;class order{private: int orderID; int buyerID; int listcount; string orderlist[20]; static int ordercount;public: order(buyer &person, book &b[],
Time of Update: 2018-12-07
1、演算法 脫離具體的語言 有窮性 --- 在保證執行有限步驟之後確定能夠結束 確切性 --- 每條語句具體幹什麼 輸入輸出 --- 所有的演算法都有輸出,列印螢幕,寫檔案,寫DB2、快速排序法 資料個數超過一個,任選其中一個資料作為分界值,把其他資料按大小關係分為2組,分界值在中間 對兩組資料實行遞迴重組View Code //快速排序演算法,效率最高的排序演算法。第一個參數表示數組首地址,第二個參數表示數組起始位置,第三個參數表示結束位置 void
Time of Update: 2018-12-07
1、數組是自動分配空間,指標要手工分配空間(int *p = new int;)2、在Unix上,程式出現段錯誤的時候,系統會產生core 檔案,會把出現錯誤的那一刻的程式鏡像儲存在此檔案中3、結構的成員變數出現數組: struct Account{ long id ; //char name[ 50 ] ; //char password[ 10 ] ; char * pname ; char *
Time of Update: 2018-12-07
1、類和對象 類就是對對象的描述,主要從屬性和行為兩個方面描述。 對於屬性一般作成private , 行為作為public 函數 (1)建構函式,初始化所有的成員變數,系統自動調用,可以重載 (2)解構函式,在對象生命週期結束的時候自動被調用調用,不準重載 建構函式和解構函式都是系統自動調用的,解構函式可以通過對象調用 A a; a.A(); //error