Time of Update: 2018-12-04
http://blog.csdn.net/tianmo2010/article/details/8706495類型轉換機制:可以分為隱式類型轉換和顯示類型轉換,顯示類型轉換也稱為強制類型轉換(cast),有四種名字命名的強制類型轉換操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。隱式的類型轉換比較常見,在混合的類型運算式中經常發生。最簡單的為整型提升,對於所有比int小的整型,包括char、signed
Time of Update: 2018-12-04
本文來自http://blog.csdn.net/zxcred C++程式的複雜性很大一部分在於他的記憶體管理,沒有C#那樣的記憶體回收機制,記憶體管理對初學者來說很困難。經常會出現記憶體泄露的情況。那麼我們寫程式如何避免記憶體泄露呢?首先我們需要知道程式有沒有記憶體泄露,然後定位到底是哪行代碼出現記憶體泄露了,這樣才能將其修複。 本文描述了如何檢測記憶體泄露。最主要的是純C,C++的程式如何檢測記憶體泄露。 現在有很多專業的偵查工具,比如比較有名的BoundsCheck,
Time of Update: 2018-12-04
public修飾的成員變數 在程式的任何地方都可以被訪問,就是公開變數的意思,不需要通過成員函數就可以由類的執行個體直接存取private修飾的成員變數 只有類內可直接存取,私人的,類的執行個體要通過成員函數才可以訪問,這個可以起到資訊隱藏protected是受保護變數 類內和子類可直接存取,也就是說,基類中有protected成員,子類繼承於基類,那麼也可以訪問基類的protected成員,要是基類是private成員,則對於子類也是隱藏的,不可訪問
Time of Update: 2018-12-04
昨天參加愛立信筆試的時候遇到了這樣一個問題,就是解釋一下C++四種強制類型轉換的方法以及其應用場合,之前有看過這個知識點,但是,考試的時候怎麼想也就沒有寫的很全面,於是,這裡整理一下:C++中的四種強制類型轉換除了具有C語言強制類型轉換的功能外,還可提供更好的控制強制轉換的過程;能更清晰地表明程式員的意圖,程式員只有看到這樣的代碼,立即就能知道一個強制類型轉換的目的。 C風格的強制類型轉換(Type Cast)很簡單,不管什麼類型的轉換統統是: TYPE b = (TYPE)a,而C++風格的類
Time of Update: 2018-12-04
(1)第一個作用:隱藏。當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。所有未加static首碼的全域變數和函數都具有全域可見度,其它的源檔案也能訪問。如果加了static,就會對其它源檔案隱藏。利用這一特性可以在不同的檔案中定義同名函數和同名變數,而不必擔心命名衝突。Static可以用作函數和變數的首碼,對於函數來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。(2)static的第二個作用是保持變數內容的持久。儲存在待用資料區的
Time of Update: 2018-12-04
zz from: http://blog.csdn.net/TrueLie/archive/2006/08/09/1043195.aspxC語言測試是招聘嵌入式系統程式員過程中必須而且有效方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用資訊,此外,撇開面試的壓力不談,這種測試也是相當有趣的。從被面試者的角度來講,你能瞭解許多關於出題者或監考者的情況。這個測試只是出題者為顯示其對ANSI標準細節的知識而不是技術技巧而設計嗎?這個愚蠢的問題嗎?
Time of Update: 2018-12-04
若有 unsigned char *p1; unsigned long *p2; p1 = (unsigned char *)0x1000; p2 = (unsigned long *)0x2000;請問 p1+5=( ) p2+5=( ) #include <stdio.h>int main(){unsigned char *p1;unsigned long *p2;p1 =
Time of Update: 2018-12-04
有人視宏為洪水猛獸,甚至要求完全從C/C++中摒棄,有人則認為宏為至尊寶典,在邏輯代碼中都大量使用。個人認為這是個仁者見仁智者見智的問題,摒棄就沒必要了,看看宏在MFC和ATL中的一些經典應用,你會發現如果不使用宏來實現一些訊息映射和對象映射神馬的那將讓“苦逼”程式員多花費多少寶貴的時間。當然也不能濫用,尤其是盡量不要在邏輯代碼中使用,宏中的邏輯出問題後,調試時候的痛苦你就真的會發現原來程式員真的挺“苦逼”的。 其實很多人對宏的“恐懼”可能源於下面的一個簡單的宏的實現: #d
Time of Update: 2018-12-04
class customer{public: customer() { } ~customer() { }public: int c_id; char name[10]; char address[20]; int age; std::string sztest; };void init_DBT(DBT * key, DBT * data){ memset(key, 0, sizeof(DBT)); memset(data, 0, sizeof(DBT));}void CTestDBDlg:
Time of Update: 2018-12-04
淺談C/C++記憶體流失及其偵查工具2006.05.25轉載自:http://www.uml.org.cn/c%2B%2B/200605254.htm 對於一個c/c++程式員來說,記憶體流失是一個常見的也是令人頭疼的問題。已經有許多技術被研究出來以應對這個問題,比如Smart Pointer,Garbage Collection等。Smart Pointer技術比較成熟,STL中已經包含支援Smart
Time of Update: 2018-12-04
本文使用了Boost中有關Python的部分,並著重介紹如何用C++寫的函數或是類,並讓Python能調用。先看我們設計好的C++函數和類。#include <string>#include <windows.h>//定義一個函數void msgbox(const std::string& str){ MessageBox(0,str.c_str(),"msgbox",MB_OK);}//定義一個C++類class Hello{public: std:
Time of Update: 2018-12-04
1. 預設建構函式,賦值函數,預設複製建構函式ClassA a;預設建構函式a=b;賦值ClassA(const ClassA&
Time of Update: 2018-12-04
Dear all: result love(boy, girl) { if ( boy.有房() and boy.有車() ) { boy.set(nothing); return girl.嫁給(boy); } if ( girl.願意等() ) { while( ! (boy.賺錢 > 100,000 and girl.感情 > 8 ) ) { for ( day=1; day <=365; day++) {- if (
Time of Update: 2018-12-04
1 標頭檔預定義 # ifndef __MY_TYPE_H__ #define __MY_TYPE_H__ ...........//omit #endif 前兩行是用來防止標頭檔被多次引用時重複定義而報錯。預定義的那個字元是一個唯一的標誌,它的命名規則為:寫成兩個底線加檔案名稱(檔案名稱的“ . ”用一個底線替換)加兩個底線的格式。這種宏定義是經常要用到的來控制碼是否被編譯的方法。2 volatile和idata關鍵字 volatile uint8
Time of Update: 2018-12-04
(隔段時間不看就會在實際使用中忘記掉---c語言數組、異或指標的使用),轉載一下,忘時供查詢 C語言處理數組的方式是它廣受歡迎的原因之一。C語言對數組的處理是非常有效,其原因有以下三點: 第一,除少數翻譯器出于謹慎會作一些繁瑣的規定外,C語言的數組下標是在一個很低的層次上處理的。但這個優點也有一個反作用,即在程式運行時你無法知道一個數組到底有多大,或者一個數組下標是否有效。ANSI/ISOC標準沒有對使用越界下標的行為作出定義,因此,一個越界下標有可能導致這樣幾種後果: (1)
Time of Update: 2018-12-04
//十進位轉二進位 Console.WriteLine(Convert.ToString(69, 2)); //十進位轉八進位 Console.WriteLine(Convert.ToString(69, 8)); //十進位轉十六進位 Console.WriteLine(Convert.ToString(69, 16)); //二進位轉十進位 Console.WriteLine(Convert.ToInt32(”100111101″, 2)); //八進位轉十進位
Time of Update: 2018-12-04
上文提到從v$Session查看串連數,發現使用串連池後莫名增加了MIN個串連(MIN為串連池的最小串連數)。但是實際上,v$session中看見的串連數是邏輯串連數,並非ORACLE的物理串連。ORACLE的會話與串連甚至可以不相關,允許存在沒有物理串連的會話。 因此,僅僅從v$session視圖看串連數是不準確的,至於從什麼地方可以看見用戶端與ORACLE的確切串連數。目前還沒找到。PRO*C的串連池特性,也只有通過效能測試來確定其有效性了。
Time of Update: 2018-12-04
1 字串分割string url = "[url]http://asdfsfd[/url][*]asdf[*]asdfsdf[*]";string[] sss = GetString(url,"[*]");foreach(string str in sss){Response.Write(str.ToString() +" ");}private string[] GetString(string str,string cutStr){char[] cutChar =
Time of Update: 2018-12-04
一、什麼是對齊,以及為什麼要對齊: 1. 現代電腦中記憶體空間都是按照byte劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但實際情況是在訪問特定變數的時候經常在特定的記憶體位址訪問,這就需要各類型資料按照一定的規則在空間上排列,而不是順序的一個接一個的排放,這就是對齊。 2. 對齊的作用和原因:各個硬體平台對儲存空間的處理上有很大的不同。一些平台對某些特定類型的資料只能從某些特定地址開始存取。其他平台可能沒有這種情況,
Time of Update: 2018-12-04
《Qt5 compile with vs2008》.pro+++++++++++++++++++++++++++++++++++++++++++++#-------------------------------------------------## Project created by QtCreator 2012-03-15T09:57:33##-------------------------------------------------QT += declarative