Time of Update: 2018-12-04
轉載自:http://blog.csdn.net/bailu66/article/details/7493859簡單點就是:對於指標,深copy時候,相同資料指標指向不同的記憶體位址深度拷貝是什嗎? 其實就是針對指標或引用的特殊處理而已。任何物件導向的程式都要解決的問題。 一個對象A裡面有一個指標指向一堆資料,你現在想把這個對象拷貝一份B,那麼這個指標怎麼辦?如果預設的話,指標的內容被拷貝,那麼拷貝後的對象B和之前的對象A中的指標指向的是同一個資料。這樣就是“淺拷貝”。如果B中修改了這些資料,A
Time of Update: 2018-12-04
情境是這樣的,有個邏輯對象的結構如下: struct Msg { int type; char name[12]; float height; float width; int count; int flag;} C++和C#分別來做這個對象的傳輸。 傳輸方面沒什麼好說的,是作業系統IO的事情,和語言無關。 下面是收到資料之後進行parse,為了對比,我們把資料parse一百萬次。 C++從socket收到char*
Time of Update: 2018-12-04
C 類型限定符const 和volatile1、const通常在聲明中,const出現在儲存類型之後,資料類型之前。如:static const int a=3;//a 是一個靜態儲存類型的整形常量由於已經用const限定了a的類型,我們可以對a進行初始化,但以後不能再對a賦值,增量和減量操作。雖然對使用const對變數作了限制,也不能在另一個聲明中用變數描述數組的大小。錯誤使用例1:const int k=3;int array[k];//錯誤因此,由const限定的變數與符號常量是不等價的。
Time of Update: 2018-12-04
/************************************************ NAME : MMU.CDESC :Revision : 1.0************************************************/#include "def.h"#include "option.h"#include "2440addr.h"#include "2440lib.h"#include "2440slib.h"#include
Time of Update: 2018-12-04
"if (p == NULL)"和“if (NULL == p)”,哪種寫法是更好的代碼風格?有人認為“if (NULL == p)”可以避免==被寫成=,從而減少bug。但是我對一些優秀項目的代碼做了一下統計,發現:Linux kernel 12436 318glibc 3715 0在linux kernel裡面,"NULL =="只出現了318次,而glibc裡面"NULL =="根本就一次都沒有出現過。 因此我認為,基於代碼的可讀性的原因,“if (p ==
Time of Update: 2018-12-04
在使用C++編程的過程當中,常常需要對類成員進行初始化,通常的方法有兩種: 第一種方法: CMYClass::CSomeClass() { x=0; y=1; } 第二種方法: CSomeClass::CSomeClass() : x(0),
Time of Update: 2018-12-04
BSS段:BSS段(bss segment)通常是指用來存放程式中未初始化的全域變數的一塊記憶體地區。BSS是英文Block Started by Symbol的簡稱。BSS段屬於靜態記憶體配置。資料區段:資料區段(data segment)通常是指用來存放程式中已初始化的全域變數的一塊記憶體地區。資料區段屬於靜態記憶體配置。程式碼片段:程式碼片段(code segment/text
Time of Update: 2018-12-04
多級反饋隊列調度演算法:1、設定多個就緒隊列,並給隊列賦予不同的優先順序數,第一個最高,依次遞減。2、賦予各個隊列中進程執行時間片的大小,優先順序越高的隊列,時間片越小。3、當一個新進程進入記憶體後,首先將其放入一個對列末尾,如果在一個時間片結束時尚未完成,將其轉入第二隊列末尾。4、當一個進程從一個對列移至第n個隊列後,便在第n個隊列中採用時間片輪轉執行完。5、僅當時間片空閑時,才調度第二個隊列中的進程。(1~i-1)空閑時,才調度i,如果處理機正在第i隊列中運行,又有新進程進入優先權較高隊列,
Time of Update: 2018-12-04
最常用的序列化是把某個類序列化成二進位檔案.但有時我們也會把類序列化成xml檔案.假如有如下一個類class Arwen{private Hashtable table = new Hashtable();private TimeSpan time = new TimeSpan(0, 0, 1);public Hashtable Table{get { return table; }set { table = value; }}public TimeSpan Time{get { return
Time of Update: 2018-12-04
主要實現雙鏈表如下功能:void AddBack(T val); //鏈表尾部添加元素void AddFront(T val); //鏈表頭部添加元素bool InsertAt(int pos, T val); //在指定的索引處插入元素bool RemoveBack(); //尾部刪除元素bool RemoveFront(); //頭部刪除元素bool RemoveAt(int pos); //刪除指定索引處元素 bool Find(T val);
Time of Update: 2018-12-04
類和柏拉圖的理念世界
Time of Update: 2018-12-04
/*功能,C++ inline。可以用來取代宏定義的函數。聲明定義內嵌函式,提示編譯時間內聯——將所調用的代碼嵌入到主調函數中。注意是否內聯取決於實現——編譯器有權不實際內聯,如果它認為這是必要的或更符合預期的目標代碼品質。日期,2013年3月13日環境,ubuntu1204-gcc部落格,http://blog.csdn.net/shunqiziranhao007/article/details/8670253*/#include <iostream>using
Time of Update: 2018-12-04
/*功能,C++ static日期,2013年3月13日環境,ubuntu1204-gcc部落格,http://blog.csdn.net/shunqiziranhao007/article/details/8667985*/#include <iostream>using std::cout; using std::endl;#define P1 cout << endl;#define P2(X) cout << X;#define P3(X) cout
Time of Update: 2018-12-04
早期的物件導向的語言smalltalk是通過繼承來實現代碼的重用,在做包容期器的時候,是通過“基於object的階層”來實現的,smalltalk中是單繼承,object是樹型的根,每一個類都繼承樹上的一枝。但是在C++中支援多個無關聯的階層,所以“基於object的階層”不能很好的起作用。通過多重繼承可以實現,同時繼承自無關聯的類和object類可以實現,可是C++開始並不支援多重繼承。
Time of Update: 2018-12-04
傷不起的電腦群組成原理課程設計,老師讓我們實現一些數值的基本運算,真是出人意料啊,不知道兩者有mao關係 下面是我的實現,現在只能是相同位元的二進位,要帶上符號... 功能真的很落後.... #include <iostream>using namespace std;string multiplie(string &s1, string
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program {//4.設計一個程式,輸入10個數存入數組中,然後實現冒泡排序。 static void Main(string[] args) { int[] nums = { 2, 5, 1,
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{ public partial class Form1 : Form
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{//2.輸入一個由若干字元組成的字串,輸出其中的大寫字母、小寫字母、數字和其他字元的個數。 class Program { static void Main(string[] args) {
Time of Update: 2018-12-04
功能需求,輸入一個字串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函數就可以了。c++下String沒有直接提供這個函數,需要自己寫。 網上給出的解決方案是這裡的三種方法。但我是通過JNI訪問的,在裡面用這些vector可能不中,自己封裝了個,僅供參考: String recogScop = "01-02-03"; cout<<recogScop<<endl; int size = recogScop.size(
Time of Update: 2018-12-04
首先,來看代碼:[html] view plaincopyprint?<SPAN style="FONT-SIZE: 18px">#include <stdio.h> void main() { char a[] = "BruceLee!"; char *p = a; printf("%c\n", *(p+4)); printf("%c\n", p[4]); printf("%s\n", p); printf("%c\n", a[4]); printf(