Time of Update: 2018-12-05
字元 說明 樣本 輸出 C貨幣string.Format("{0:C3}", 2)$2.000D十進位string.Format("{0:D3}", 2)002E科學計數法1.20E+0011.20E+001G常規string.Format("{0:G}", 2)2N用分號隔開的數字string.Format("{0:N}", 250000)250,000.00X十六進位string.Format("{0:X000}", 12)Cstring.Format("{0:000.000}", 12.2
Time of Update: 2018-12-05
函數重載與const的關係:1、如果形參是非參考型別的,則下面兩個函數是編譯報錯的(error C2084: 函數“void rldFunction(int)”已有主體)void rldFunction(int paraIn){cout << paraIn << endl;}void rldFunction(const int paraIn){cout << paraIn <<
Time of Update: 2018-12-05
眾所周知,建構函式的job就是保證每個對象的資料成員具有合適的初始值//假設name(string),stuNum(int),grade(int)都是類myClass的資料成員class myClass::myClass(){name = "1班";stuNum = 60;grade = 2;}一直認為上面建構函式的函數體內三行便是對資料成員的初始化,今天一個偶然的bug給了我當頭一棒,看了看Primer才知道那是賦值不是初始化。。。。。。其實建構函式的執行是分兩個階段的:1、初始化階段
Time of Update: 2018-12-05
不妨將繼承層次中的函數調用按照調用方式分類:一、直接通過對象調用:1、調用非虛函數。眾所周知,一個衍生類別對象(public繼承)是有兩部分組成的,基類對象部分和衍生類別自己的部分,如果用衍生類別對象調用某一非虛函數(假設該函數在基類中為public)nvfcn() , 則編譯器首先在衍生類別部分中尋找該函數名字:若找到,則進行類型檢查,檢查正確-->調用、不正確-->報錯;若找不到,則到基類中尋找。。以此類推。例如:class BaseClass{public:BaseClass(
Time of Update: 2018-12-05
1、賦值運算式是有值的,就是左運算元的新值。2、sizeof 操作符判斷它的運算元的類型長度 , 以位元組為單位。運算元既可以是個運算式,亦可以是類型名:sizeof( int ) sizeof x 第一個運算式返回整形變數的位元組數 , 第二個返回變數x所佔的位元組數。當sizeof運算元是數組名時,返回該數組的長度。一定要注意:判斷運算式的長度並不對錶達式進行求值,所以sizeof(x = y + 1)並沒有向x賦任何值。3、逗號操作符:
Time of Update: 2018-12-05
原文連結 點擊開啟連結什麼是操作符重載?操作符重載可以分為兩部分:“操作符”和“重載”。說到重載想必都不陌生了吧,這是一種編譯時間多態,重載實際上可以分為函數重載和操作符重載。運算子多載和函數重載的不同之處在於操作符重載重載的一定是操作符。我們不妨先直觀的看一下所謂的操作符重載:#include <iostream> using namespace std; int main() { int a = 2 , b = 3; float c = 2.1f , d =
Time of Update: 2018-12-05
今天碰到一個某公司的筆試題(被鄙視了): char s[] = "\\141\141abc\t";cout << s << endl;cout << strlen(s) << endl;//請問輸出結果?答案:\141aabc9(如果你是大牛 一看就知道答案 下面的東西就別看了 , 就放小弟一馬,別鄙視我了)前兩個 字元大家比較熟悉,肯定是一個 \ ,後面的141 是三個字元 , 但是到了 \141 我就煩糊塗了, 到底是幾個字元?其實\141
Time of Update: 2018-12-05
開始學習資料結構,路還長,加油!!用C++的template實現順序表SequenceList ,第一次上傳完整代碼,比較菜。SequenceList.h:#ifndef SEQ_LIST_H#define SEQ_LIST_H#include <iostream>#include <exception>//模板的聲明和定義要在同一個標頭檔中//建立一個順序表類模板template <typename Type> class
Time of Update: 2018-12-05
線性表的鏈表描述,廢話少說,上代碼。節點標頭檔 ChainNode.h:#ifndef CHAIN_NODE_H#defineCHAIN_NODE_H#include "ChainList.h"template <typename T>class ChainNode{//friend ChainList<T>;public:ChainNode();~ChainNode(); template <typename T> friend class
Time of Update: 2018-12-05
C/C++每個標頭檔的功能說明傳統 C++ #include <assert.h> //設定插入點 #include <ctype.h> //字元處理 #include <errno.h> //定義錯誤碼 #include <float.h> //浮點數處理 #include <fstream.h> //檔案輸入/輸出
Time of Update: 2018-12-05
c++物件導向中的繁瑣機制,不得不讓你在編程中頻頻“犯病”,找錯誤,找bug,困擾,是你的病源所在,本人雖不是什麼“良醫”, 卻也算是總結出以下“良方”。註:難免會有記憶上的遺漏,知識上的不夠,遺漏之處還需大家來補充啊!藥方1 ? 必需時刻明白物件導向編程中要扮演的兩個角色,一個就是你,類的設計者,一個就是使用者,類的使用者,你的設計是針對使用者而言的,當然你也可能是身兼兩職,同時是設計者又是使用者。藥方2 ?
Time of Update: 2018-12-05
由於malloc的低效,一直在尋找替換的方案,最後突發其想,封裝一個FastMM的DLL作為C++的記憶體管理器;然後重載全域的new和delete操作符。如上方法執行之後,再跑原來的測試程式,效率果然與FastMM版本的一致了。我原來以為VC版STL的預設記憶體管理器,會有大量的最佳化,後來跟進去才發現,它也不過是用了new和delete,如果不重載,則最終是調用malloc的。如果要讓STL也使用FastMM,則只能使用靜態版的CRT。
Time of Update: 2018-12-05
Visual C++ 編程協助工具輔助(轉載)開發協助工具輔助大收集除了我們日常開發使用的Visual C++、Delphi、JBuilder等等大傢伙, 還有很多小巧好用的開發協助工具輔助,善用它們可以極大的提高我們的效率。日常工作中我主要使用Visual C++開發程式,工作幾年,收集了一些小工具, 下面逐個介紹給大家。也希望大家把自己的工具拿出來和大家分享。如果大家需要,請跟貼,需要的朋友多的話,我上傳到FTP上(都是沒有限制的最新版本喲) Visual C++外掛程式 [1]
Time of Update: 2018-12-05
Delphi和C#的類都提供了“屬性”的概念,使得Getter和Setter的方法可以像訪問成員一樣簡單,如下面的Delphi代碼:TMyClass = classprivate FValue: Integer; funcation GetValue: Integer; procedure SetValue(value: Integer);public propertyValue: Integer read GetValue write
Time of Update: 2018-12-05
當前模組的控制代碼在程式進入點可以獲得,一般做法是儲存為一個全域變數,以後使用這個全域變數即可。但有時在寫一些比較通用的代碼時剛好要用到模組控制代碼,如果還去訪問這個全域變數就破壞了代碼的通用性。下面函數可以取得當前模組的控制代碼,無須儲存,隨調隨得:/*通過一個地址模數塊控制代碼*/inline HMODULE ModuleHandleByAddr(const void* ptrAddr){MEMORY_BASIC_INFORMATION
Time of Update: 2018-12-05
//源檔案:md5.cs// MD5 Alogrithm// by rufi 2004.6.20 http://rufi.yculblog.com/using System;using System.Collections;using System.IO;namespace WinUserLogin{ public class MD5 { //static state variables private static UInt32 A; private static UInt32 B;
Time of Update: 2018-12-05
在.NET和C#中編寫一個多線程應用程式將非常得容易。即使對於那些從沒有用C#編寫過多線程應用程式的初學者,只需遵循以下這些簡單的步驟就可以實現目的。 定義名稱空間 在.NET中,多線程功能是在System.Threading名稱空間中定義的。因此,在使用任何線程類之前,必須定義 System.Threading名稱空間。定義方法如下: using System.Threading; 啟動線程
Time of Update: 2018-12-05
題目:輸入三個字串a,b和c,將a中b的第一次出現替換為c。代碼:#include <iostream.h>#include <string.h>/*字串替換,第一個參數為原串,第二個參數為要匹配的子串第三個參數為要替換的第一個子串中包含第二個子串的部分*/char *strReplace(char *str1,char *str2,char *str3); void main(){ char str1[255]={'/0'},str2[255]={'/0'}
Time of Update: 2018-12-05
字串間最多公用字元的數目通過兩個字串在不同位置重疊的方法得到。 例如字串: CAPILLARY MARSUPIAL 當重疊情況如下時,只有1個共同字元 A CAPILLARY MARSUPIAL 當重疊情況如下時,有2個共同字元 A R CAPILLARY MARSUPIAL 當重疊情況如下時,有3個共同字元 P I L CAPILLARY MARSUPIAL 編寫代碼:int searchStr(char *str1,char *str2){ int len1=
Time of Update: 2018-12-05
Server端Code:import java.io.*; import java.net.*; public class Server { public static int num=0; //用於記錄串連的數目 static ServerSocket ss; //伺服器端通訊端 static int len=0; //記錄每次收到資料的長度 public static void main(String[