Time of Update: 2018-12-07
標準c++中主要有四種強制轉換類型運算子:const_cast,reinterpret_cast,static_cast,dynamic_cast等等。 1)static_cast<T*>(a) 將地址a轉換成類型T,T和a必須是指標、引用、算術類型或枚舉類型。運算式static_cast<T*>(a), a的值轉換為模板中指定的類型T。在運行時轉換過程中,不進行類型檢查來確保轉換的安全性。例子:class B { ... };class D : public B { .
Time of Update: 2018-12-07
類對象數組初始化 如有一個如下類:class EquipmentPiece {private:int IDNumber;public:EquipmentPiece(int IDNumber) : IDNumber(IDNumber) {};}; 以下列出幾種初始化的方法:<一>、對象數組int ID1, ID2, ID3;EquipmentPiece bestPieces[] = { EquipmentPiece(ID1), EquipmentPiece(ID2),
Time of Update: 2018-12-07
C++為類中提供類成員的初始化列表 類對象的構造順序是這樣的:1.分配記憶體,調用建構函式時,隱式/顯示的初始化各資料成員2.進入建構函式後在建構函式中執行一般計算 使用初始化列表有兩個原因: 1.必須這樣做:如果我們有一個類成員,它本身是一個類或者是一個結構,而且這個成員它只有一個帶參數的建構函式,而沒有預設建構函式,這時要對這個類成員進行初始化,就必須調用這個類成員的帶參數的建構函式,如果沒有初始化列表,那麼他將無法完成第一步,就會報錯。class ABC...{public:
Time of Update: 2018-12-07
一、字串字面值字串字面值是一串常量字元,字串字面值常量用雙引號括起來的零個或多個字元表示,為相容C語言,C++中所有的字串字面值都由編譯器自動在末尾添加一個Null 字元。"Hello World!" //simple string literal"" //empty string literal"\nCC\toptions\tfile.[cC]\n" //string literal using newlines and tabs字元字面值: 'A' //single
Time of Update: 2018-12-07
一、按成員初始化(與建構函式和拷貝建構函式有關) 用一個類對象初始化另一個類對象,比如:Account oldAcct( "Anna Livia Plurabelle" ); Account newAcct( oldAcct ); 被稱為預設的按成員初始化(default memberwise initialization),預設是因為它自動發生,無論我們是否提供顯式建構函式,按成員是因為初始化的單元是單個非待用資料成員,而不是對整個類對象的按位拷貝。
Time of Update: 2018-12-07
//#define Testusing System;namespace Wrox.ProCSharp.ParameterTestSample...{class ParemeterTest ...{ staticvoid TestInt(int[] ints,int i)...{ ints[0] =100; i =100; } staticvoid TestInt(int[] ints, refint i)...{ ints[0] =200; i =200;
Time of Update: 2018-12-07
設想在一個軍事應用程式裡,有一個表示敵人目標的類: class enemytarget {public:enemytarget() { ++numtargets; }enemytarget(const enemytarget&) { ++numtargets; }~enemytarget() { --numtargets; } static size_t numberoftargets(){ return numtargets; } virtual bool
Time of Update: 2018-12-07
首先要明確sizeof不是函數,也不是一元運算子,他是個類似宏定義的特殊關鍵字,sizeof();括弧內在編譯過程中是不被編譯的,而是被替代類型。 如int a=8;sizeof(a);在編譯過程中,它不管a的值是什麼,只是被替換成類型sizeof(int);結果為4. 如果sizeof(a=6);呢,也是一樣的轉換成a的類型,但是要注意
Time of Update: 2018-12-07
一、虛構函數定義 解構函式是一個特殊的由使用者定義的成員函數,當該類的對象離開了它的域或者delete運算式應用到一個該類的對象的指標上時,解構函式會自動被調用。 解構函式的名字是在類名前加上波浪線 ~ ,它不返回任何值也沒有任何參數,因為它不能指定任何參數, 所以它也不能被重載。儘管我們可以為一個類定義多個建構函式,但是我們只能提供一個解構函式,它將被應用在類的所有對象上。下面是Account 類的解構函式: class Account { public: Account();
Time of Update: 2018-12-07
幾個預先處理指示符的使用#include 標頭檔通過 include 前置處理器指示符(preprocessor include directive) 而成為我們程式的 一部分 前置處理器指示符用 # 號標識 這個符號將放在程式中該行的最起始一列上 處理 這些指示符的程式被稱做前置處理器 preprocessor 通常捆綁在編譯器中 。#ifndef 被包含的檔案還可以含有#include 指示符 由於嵌套包含檔案的原因 一個標頭檔可能
Time of Update: 2018-12-07
1、 範圍符號::的前面一般是類名稱,後面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而採用範圍的方式進行區分如:A,B表示兩個類,在A,B中都有成員member。那麼 A::member就表示類A中的成員member B::member就表示類B中的成員member 2、 全域範圍符號:當全域變數在局部函數中與其中某個變數重名,那麼就可以用::來區分如: char zhou; //全域變數 void sleep() {
Time of Update: 2018-12-07
引用簡介 引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。 引用的聲明方法:類型標識符 &引用名=目標變數名; 【例1】:int a; int &ra=a;
Time of Update: 2018-12-07
第一個指令碼是通過尋找日誌中訪問次數過多的ip,並用iptables屏蔽。#!/bin/bashcur=`date +%H%M%S`becur=`date -d "1 minute ago" +%H%M%S`badip=`tail -n 10000 /home/www.centos.bz/log/access.log | egrep -v "\.(gif|jpg|jpeg|png|css|js)" | awk -v a="$becur" -v b="$cur" -F [' ':] '{t=$5
Time of Update: 2018-12-07
bsearch void*bsearch(const void *key, const void *base, size_t n_elements,size_t el_size, int (*compare)(const void *, const void *)); Example: Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
strtok char *strtok(char *str, const char *sep); Example: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->char *token;char *path = getenv("PATH");/* PATH is something like "/usr/bin:/bin/usr/sbin:/
Time of Update: 2018-12-07
指標與地址——《C程式設計語言(第2版-新版)》5.1 一元運算子&可用於取一個對象的地址,因此,下列語句: p = &c;將把 c 的地址賦值給變了p,我們稱 p 為“指向”c的指標。地址運算子&只能應用於記憶體中的對象,即變數與數組元素。它不能作用於運算式、常量或 register 類型的變數。 一元運算子*是間接定址或間接引用運算子。當它作用與指標時,將訪問指標所指向的對象。我們在這裡假定 x 與 y 是整數,而 ip 是指向 int
Time of Update: 2018-12-07
介面:不允許使用存取修飾詞,所有介面成員都是公用的.介面成員不能包含代碼體.介面不能定義欄位成員.介面成員不能使用關鍵字static,vritual,abstract,sealed來定義.類型定義成員是禁止的.如果要隱藏繼承了介面中的成員,可以用關鍵字new來定義它們.public interface IMyInterface{ void DoSomething();}public interface IMyDeInterface : IMyInterface{ new void
Time of Update: 2018-12-07
引用:序列化與還原序列化解釋:序列化,就是將一個對象儲存到檔案中去,而還原序列化就是將該檔案重新儲存為一個對象.序列化的三種方式:1.BinaryFormatter class BinarySerialize : ISerialize { FileStream fs; string filepath = @"D:/1/1.txt"; public void Serialize(Book book) {
Time of Update: 2018-12-07
文章目錄 1,圖片格式轉換2,圖片的縮放(Scale)3,圖片的翻轉(Rotate)4,圖片的截取(Clip)5,濾鏡(Filter) 通常對一幅圖片的處理包括:格式變換,縮放(Scale),翻轉(Rotate),截取(Clip),濾鏡(Filter,如高斯模糊)等。1,圖片格式轉換.NET中的Image類是對圖片對象的封裝,我們可以通過操作Image類的執行個體來處理圖片。通常我們有兩種式可以得到Image執行個體:var imgPng
Time of Update: 2018-12-07
如果一個C#程式引用另一個用C#語言寫的dll,事實上極為方便。不論是自己寫的還是引用外部的,都只要很簡單的工序就可完成,用不著DllImport特性。首先開啟需要載入dll的工程,在“方案總管”中右擊“引用”,在探出的菜單中選擇“添加引用”。在彈出的對話方塊中單擊“瀏覽”選項卡,找到你所要引用的dll的目錄,找到dll檔案後單擊“確定”這個時候你就會發現在“方案總管”裡已經有你載入的命名空間了。然後只要在你的程式碼裡是用using語句引用這個命名空間就可以像使用系統類別一樣使用dll的任何公用