Time of Update: 2018-12-03
關於判定一位程式員是否合格(暫且把所有寫程式的人都叫做程式員),我們提出了修養的概念。“修養”是要修鍊的,你不妨也去武當山、峨嵋山去打坐打坐,回來也可以教教我,我很羨慕那些身手不凡的大俠的。
Time of Update: 2018-12-03
一、當模板類的某個參數為常量時,只特化類的某個成員函數我們知道在C++模板編程中如果我們特化或是偏特化某個模板類, 我們需要重寫整個模板類中的所有函數, 但是這些代碼通常是非常相似的, 甚至在某些情況下可能只有一兩個函數會不一樣,其他函數都是一樣的。在這種情況下,同時存在多份相同的代碼,對我們維護這些代碼是非常不利的, 我們最好只需要特化其中不一樣的那個函數。比如下面這個模板類:template<typename T, unsigned B>struct Base{
Time of Update: 2018-12-03
最基本的法則莫過於 Knuth 的《電腦程式設計藝術》(The art of computer programming)所提到的幾條特性(Knuth是全球公認的演算法高手,TeX排版系統的締造者,也是名駭客,所以也請記住他): 1.確定性:你寫的程式必須有確切的定義,即每種運算應該執行何種運作是必須是清楚的、無二義性的。你不可以讓你的程式輸入是3+5,而輸出則一會兒是8,一會兒是9;
Time of Update: 2018-12-03
在C語言中,static 具有的兩重意義: (1) 如果 static int foo; 這一句位於函數中,則 static 表示的是儲存屬性,表明 foo 是一個靜態變數。放在靜態儲存區,只佔一份空間。它的生存周期和程式一樣長。 (2) 如果 static int foo; 這一句位於函數外面,則 foo 是一個全域變數,static 不再是表示儲存性質,而是作為限制符來使用:用來限制全域變數 foo 的可見範圍,將其範圍限制於所在的檔案內,在其它檔案中是不可見的。 static void
Time of Update: 2018-12-03
談談C++繼承中的重載,覆蓋和隱藏 寫正題之前,先給出幾個關鍵字的中英文對照,重載(overload),覆蓋(override),隱藏(hide)。在早期的C++書籍中,可能翻譯的人不熟悉專業用語(也不能怪他們,他們不是搞電腦編程的,他們是英語專業的),常常把重載(overload)和覆蓋(override)搞錯! 我們先來看一些代碼及其編譯結果。 執行個體一: #include "stdafx.h" #include <iostream.h> class
Time of Update: 2018-12-03
本文章的出現是因為有不少人惡劣地將垃圾文章歸類到C++blog中,也包括很多可以歸類到C++但沒什麼價值的blog出現最新的blog文檔添加到最下面,老的會逐漸添加到前面.一般只歸類原創和翻譯的!大家如果發現blog文章只是轉的,請及時告知................................................................................................................................優秀
Time of Update: 2018-12-03
圖形學:圖形學-鋭化-拉普拉斯(Laplacian)運算元圖形學-降噪技術-2維中值濾波圖形學-對比變換-長條圖均衡化 圖形學-灰階變換 單通道映像的長條圖(C/C++原始碼) 並行映像細化演算法和C代碼實現 計算拋物線方程 遊戲領域:sevecol的專欄 主要有光照處理和DX9使用我的ALLEGRO學習之旅 我的ALLEGRO學習之旅2 網路:hustxxb's Blog 關注著web server的編寫ACE例子之APG例子的Active_Objects樣本
Time of Update: 2018-12-03
C++ 拷貝建構函式引題:對於普通類型的對象來說,他們之間的複製是很簡單的,例如:int a=100;int b=a;本文:類對象和普通對象不同,類對象內部結構一般較為複雜,存在各種成員變數。下面看一個類對象拷貝的簡單例子。#include <iostream>using namespace std;class CA{public: CA(int b) { a=b; } void Show () {
Time of Update: 2018-12-03
C++拷貝建構函式(深拷貝,淺拷貝)對於普通類型的對象來說,它們之間的複製是很簡單的,例如:int a=88;int b=a; 而類對象與普通對象不同,類對象內部結構一般較為複雜,存在各種成員變數。下面看一個類對象拷貝的簡單例子。#include <iostream>using namespace std;class CExample {private: int a;public: CExample(int b) { a=b;} void Show (
Time of Update: 2018-12-03
// v8test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <v8.h>#pragma comment(lib, "v8_base.lib")#pragma comment(lib, "v8_snapshot.lib")#pragma comment(lib, "ws2_32.lib")#pragma comment(lib, "winmm.lib"
Time of Update: 2018-12-03
華為--C++
Time of Update: 2018-12-03
Why Smart Pointer?為什麼需要智能指標?因為c++的記憶體管理一直是個令人頭疼的問題。假如我們有如下person對象:每個person有自己的名字,並且可以告訴大家他叫什麼名字:////a person who can tell us his/her name.//#include<iostream>#include<string>using namespace std;class person{public:person(string);void
Time of Update: 2018-12-03
動態記憶體分配即分配記憶體大小在運行時才確定,一般在堆中分配。C語言動態記憶體分配相關的函數。malloc #include <stdlib.h>void * malloc (size_t
Time of Update: 2018-12-03
C++的多態性是通過虛函數來實現的,虛函數的出現使得動態連結成為可能。基於建構函式的特點,不能將建構函式定義為虛函數,但可以將解構函式定義為虛函數。一般情況:當衍生類別的對象從記憶體中撤銷時,會先調用衍生類別的解構函式,然後自動調用基類的解構函式,如此看來解構函式也沒有必要定義為虛函數。但如考慮如下這種情況,如果使用基類指標指向衍生類別的對象,而這個衍生類別對象恰好是用new運算建立的,這種情況下會如何呢?當程式使用delete運算撤銷衍生類別對象時,這時只會調用基類的解構函式,而沒有調
Time of Update: 2018-12-03
【1】C語言字串處理函數 http://blog.csdn.net/ruizeng88/article/details/6677736 【2】【經典面試題】尋找單鏈表倒數第n個節點 http://blog.csdn.net/ruizeng88/article/details/6700727 【3】【經典面試題】翻轉單鏈表 http://blog.csdn.net/ruizeng88/article/details/6695220 【4】16道經典面試題及回答思路
Time of Update: 2018-12-03
v8是一個強大的js虛擬機器,json是js的內建資料格式。json常用於程式配置和網路資訊傳輸。例子有些殺雞用牛刀的感覺,大家就當一個體驗吧。在win7上編譯v8的過程可以參考這個,或者v8的官方doc。http://blog.csdn.net/wuzh1230/article/details/7919932主要步驟:載入json配置(可以從檔案讀取,utf-8格式),編譯,執行,編譯配置項運算式,執行,提取配置項的值。#include <v8.h>using namespace
Time of Update: 2018-12-03
在c語言中,我們經常面臨需要將字串轉換為整型,以及將整型轉化為字串的問題。將字串轉換為整數的函數在stdlib.h中定義:int atoi(const char *str);atoi函數會跳過str中前面出現的空格,從第一個數字開始轉換。下面是我的實現:int my_atoi(const char *str){//argument check first!assert(NULL != str);int ret=0,sign=1;//skip tab and spacefor(; *str=='
Time of Update: 2018-12-03
c++的抽象類別可以作為介面,實現事件回調等機制.介面實現檔案IDemoImpl.cpp#include <stdio.h>#include "IDemo.h"IDemo::IDemo(){}IDemo::~IDemo(){}class CDemoImpl : public IDemo{public:CDemoImpl(){};~CDemoImpl(){};public:virtual int Add(int a, int b){return (a+b);}virtual int
Time of Update: 2018-12-03
這邊文章對c語言的字串處理的常用庫函數總結一下,並進行實現。1.字串比較int strcmp(const char *s1, const char *s2);比較兩個字串的大小(不忽略大小寫),傳回值很有學問:如果s1小於s2返回一個小於0的數,如果s1大於s2返回一個大於0的數,如果相等則返回0。傳回值是兩個字串中第一個不相等的字元ascii碼的差值。實現如下:int my_strcmp(const char *s1, const char *s2){//important!
Time of Update: 2018-12-03
用到的資料結構是一個是頂點表,包括頂點和指向下一個鄰接點的指標一個是邊表, 資料結構跟頂點不同,儲存的是頂點的序號,和指向下一個的指標剛開始的時候把頂點表初始化,指標指向null。然後邊表插入進來,是插入到前一個,也就是直接插入到firstedge指向的下一個,而後面的後移 #define MaxVertexNum 100typedef char VertexType;typedef struct node //邊表節點{ int adjvex; node*