Time of Update: 2018-12-03
寧以pass-by-reference-to-const替換pass-by-value(Prefer pass-by-conference-to-constto pass-by-value.)pass-by-conference-to-const:class Point{ public: Point( ) : xval(2), yval(2){printf("%d,%d/n", xval, yval);} void SetXval(int i){xval =
Time of Update: 2018-12-03
寧以non-member-and-non-friend替換member函數(Prefer non-member non-friend functionto member
Time of Update: 2018-12-03
聲明:下面的執行個體全部在linux下嘗試,window下未嘗試。有興趣者可以試一下。文章針c初學者。c語言的強符號和弱符號是c初學者經常容易犯錯的地方。而且很多時候,特別是多人配合開發的程式,它引起的問題往往非常行為怪異而且難以定位。什麼是強符號和弱符號?在c語言中,函數和初始化的全域變數是強符號,未初始化的全域變數時弱符號。強符號和弱符號的定義是連接器用來處理多重定義符號的,它的規則是:不允許多個強符號;如果一個強符號和一個弱符號,這選擇強符號;如果多個弱符號,則任意選一個。它的陷阱:上代碼
Time of Update: 2018-12-03
所有程式基於linux平台。1、檔案夾和目錄拷貝工具製作一個工具,可以拷貝檔案和目錄。可以通過命令:cp filesrc filedst,將源檔案filesrc複製為filedst。2、訓練檔案操作和字串處理。檔案讀寫以及字串處理在c中應用很多。特別是字串的拷貝,連結,尋找等等。訓練的題目是設定檔的讀寫:有一個設定檔:test.ini,格式及內容如下:#表示後面的內容是注釋db_ip = 10.10.1.2 #這是一個欄位,表示ip,=後面表示這個欄位的內容db_port = 3
Time of Update: 2018-12-03
每種語言都有它擅長的領域,所以,我們的策略,就是使用多種語言,讓每個語言完成他們擅長的部分任務。混合語言編程是一種語言密集型,而不是代碼密集型的編程。我們不但要具備多種語言的知識,還要能夠知道各個語言的特長。C:可以作為其他語言的基礎,來實現其他語言的核心。它的效率接近機器語言。但是容易犯錯,開發效率低。C++:編譯效率,物件導向,泛型程式設計的結合。但是非常怪異複雜,往往鼓勵複雜的設計。Shell:書寫小型指令碼非常自然快捷。難於處理大型程式。Perl:大量開源實現模組,Regex,模式比對。
Time of Update: 2018-12-03
1.1 變數範圍1.1.1 幾種常見類型變數的範圍範圍(scope)或者可見度是指變數在程式內的可見和可引用的範圍。比如:1、 全域變數在所有的檔案都可見,那他的範圍就是所有檔案;2、 static定義的全域變數,只在定義它的源檔案中可見,那他的範圍就是其所在的源檔案;3、 函數內部的局部變數,只在其函數範圍內可見;4、 有些變數,只在某一塊程式碼片段內可見(花括弧括起來的一段代碼);void test_fun() {int test_i = 0;test_i = 10;if (test_i !
Time of Update: 2018-12-03
《代碼大全》建議在變數定義的時候進行初始化,但是很多人,特別是新人對結構體或者結構體數組定義是一般不會初始化,或者不知道怎麼初始化。1、初始化typedef struct _TEST_T { int i; char c[10];}TEST_T;TEST_T gst = {1, “12345”};//可以初始化,設定i為1,s為一個字串.TEST_T gst = {1};//初始化個數少於實際個數時,只初始化前面的成員。TEST_Tgst = {.c=“12345
Time of Update: 2018-12-03
// 演算法.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>#include <ctime>using namespace std;void QuickSort(int e[], int first, int end);int _tmain(int argc, _TCHAR* argv[]){srand(unsigned(time(NULL)));//set 種子int t_nArray[10];/
Time of Update: 2018-12-03
轉自 : http://www.cppblog.com/michaelgao/archive/2008/10/09/63571.html 為什麼C++編譯器不能支援對模板的分離式編譯 劉未鵬(pongba) /文 首先,C++標準中提到,一個編譯單元[translation unit]是指一個.cpp檔案以及它所include的所有.h檔案,.h檔案裡的代碼將會被擴充到包含它的.cpp檔案裡,然後編譯器編譯該.cpp 檔案為一個.obj檔案,後者擁有PE[Portable Executable,
Time of Update: 2018-12-03
今天做到模版的問題,無法分離定義,在網上找到一些資料,無意間接觸到了c++程式的編譯過程。經學習理解後總結如下: 對於c++工程中含有很多檔案,其中.cpp和.h我們比較熟悉。coder將程式寫在這兩個檔案中,具體的編譯和運行由編譯器自己去完成。 我們就會提出問題,編譯器是如何進行編譯的呢。 首先,先行編譯,就是將一些宏進行替代以及將.h展開到.cpp中。
Time of Update: 2018-12-03
一段關於定時器的程式 // ThunderFind.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>#include <stdio.h> #include "map.h"#include <windows.h>using namespace std;map m;//m為map類的對象聲明為全域的才能使用定時器void CALLBACK addThunderTenMin(HWND
Time of Update: 2018-12-03
c++中string可以通過string.length()來獲得string的長度,當對與一個數組來說就不是這麼容易了。如一個int型的數組:int a[] = {1,2,3,5,6,9};如何獲得呢?可以通過sizeof的特殊用法,都知道sizeof()是獲得所佔的空間的大小,所以可以:int length = sizeof(a)/sizeof(int);來得到a數組的元素個數。1.vector
Time of Update: 2018-12-03
1-1 : 正確1-2 : 不正確 std::string exclam = "!";std::string message = "hello" + ", world" +exclam;錯!( error C2110: cannot add twopointers)std::string message = exclam +"hello" + ", world" ; 正確!std::string message = "hello" +exclam + ", world" ;正確! 1、2題解釋:
Time of Update: 2018-12-03
2-1: 將 pad = 1 改為 pad = 0;2-2: 改為rows = pad * 2 + 3 + 2;c == 1 + pad+ 1;則頂部底部框與字串空格加1。2-3: pad 由使用者輸入。pad值:控制邊框與字串之間的空格數。rows值: 控制底邊框和字串之間的空格數。c == 1 + pad; 右值:控制頂邊框和字串之間的空格數。cols值: 控制右邊框和字串之間的空格數。r == 1 + pad;右值:控制左邊框和字串之間的空格數。=====
Time of Update: 2018-12-03
本站文章均為 李華明Himi 原創,轉載務必在明顯處註明:轉載自【黑米GameDev街區】 原文連結: http://www.himigame.com/game-detail/1035.html ☞ 點擊訂閱 ☜ 本部落格最新動向!及時將最新博文通知您!今天備忘幾個童鞋們可能會遇到的問題:1. 關於Cocos2dx v1.x版本運行在iphone與Android平台出現圖片變白塊,尺寸一樣。圖片純白問題。之前出現此問題原因如下: 1.1
Time of Update: 2018-12-03
本站文章均為 李華明Himi 原創,轉載務必在明顯處註明:轉載自【黑米GameDev街區】 原文連結: http://www.himigame.com/iphone-cocos2dx/844.html ☞ 點擊訂閱 ☜ 本部落格最新動向!及時將最新博文通知您!其實對於此篇算是對於這段時間網路研究的一個總結。對於手遊網路通訊的互動,一般情況下,Socket長串連直接使用Mina架構即可,對於Http短串連使用Servlet
Time of Update: 2018-12-03
// 在 C++ 裡把其它類型轉換成字串時最好是用純 C++ 的機制: stringstream 類。// ( http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.1)#include <iostream>#include <sstream>using namespace std;void main( ) { int i = 100; stringstream ss;
Time of Update: 2018-12-03
宏定義中的井號1)# 只在有參數的定義時用到,為把參數產開並轉化成字串即用""引起來。裡面的空格分割全部改為一個,並且會自動添加逸出字元'\'2)##可以用於有無參數都行。它作用就是把##前後連個東西連起來形成新的標示符。3)#@和#類似,只不過是用''引起來。考慮下面的宏#define stringer( x ) printf( #x "\n" )stringer( In quotes in the printf function call );stringer( "In quotes
Time of Update: 2018-12-03
gcc source program -g gdb file -o executable filegdb gdb filestartnext(n)step(s)進入函數內部bt(backtrace)查看函數調用的棧幀i(info) ***p variant 列印變數的值set var variant_define=***display variant 設定顯示某個變數的值,每進行一布都顯示b(breakpoint) num 設定斷點i breakpoints 查看斷點delete
Time of Update: 2018-12-03
首先說個最特殊的指標 void×,這個是當初為了指標轉化的方便,設立的一個萬能指標。任何指標都能與之轉化。看兩個定義:typedef int ×t; t a[10];typedef int t[10] ; t *a;首行先定義了一個整型指標類型,然後在定義了一個整型數組指標類型;後面一行首先定義了一個整型數組,然後定義了一個指向整型數組的指標。總結下兩行代碼,分別用一句代替就是int* a[10]和