Time of Update: 2015-07-11
標籤:const最近在公司使用C++做項目,對工作中發現的問題進行總結!大家都知道,C++的const關鍵字是申明一個常量,以前沒有深入接觸C++的時候也沒覺得有什麼特別的用法。下面說說我最近工作中發現的關於const的一些使用慣例,我這裡所說的使用慣例,是指C++編碼中推薦的做法。1)函數中的const參數 我們可能會看到類似這樣的一個函式宣告: void copy(const string& strDestination, const string& strSource);
Time of Update: 2015-07-11
標籤:單例模式#include <iostream>#include <windows.h>#include <mutex>std::mutex gmutex;using namespace std;template<typename Type>class Singleton{public: static Type* GetSingleton() { if (siglen == NULL) {
Time of Update: 2015-07-12
標籤:Effective C++ chapter 2. 構造 / 析構 / 賦值運算 (Constructors, Destructors, and Assignment Operators) Item 6. 若不想使用編譯器自動產生的函數,就該明確拒絕
Time of Update: 2015-07-12
標籤: 從開始看Python到現在也有半個多月了,前後看了Python核心編程和Dive into Python兩本書。話說半個月看兩本,是個人都知道有多囫圇吞棗,這也是因為我暫時沒有需求拿這個做大型開發,主要是平時的小程式test用一用。所以 我的策略是,整體瀏覽,用到時候現查。話說這核心編程第一版太古老了,老在講2.2之前的東西,我看的翻譯電子版,翻譯得也不好,很晦澀。看完這個後還有
Time of Update: 2015-07-12
標籤:原文:http://blog.csdn.net/qll125596718/article/details/8248249
Time of Update: 2015-07-11
標籤:虛表#include <iostream>using namespace std;class Base{public: virtual void fun1() { cout << "Base::fun1()" << endl; } virtual void fun2() { cout << "Base::fun2()" << endl; }};class Son :
Time of Update: 2015-07-11
標籤:// string的幾個基本函數的實現#include <iostream>#include <assert.h>#include <string.h>using namespace std;class String{public:String(){_str = new char[1];_str[0] = '\0';}String(char *str){assert(str != NULL);_str = new char[strlen(
Time of Update: 2015-07-11
標籤:/* SList.cpp Author: Qiang Xiao Time: 2015-07-11*/#include<iostream>using namespace std;const int MAX_LENGTH= 20;class SList{ private: int max_len; int arr[MAX_LENGTH]; int len; public: SList(int a[], int
Time of Update: 2015-07-11
標籤:如果衍生類別中新增一個成員變數,該成員變數與基類中的成員變數同名,則新增的成員變數就會遮蔽從基類中繼承過來的成員變數。同理,如果衍生類別中新增的成員函數與基類中的成員函數同名,則該新增的成員函數就會遮蔽從基類中繼承過來的成員函數。內涵段子更新例1:迅雷會員11號分享樂視會員分享複製純文字新視窗《在我走之前》2015高分動作電影在本例中定義了一個基類basic,之後通過繼承basic類派生出derived類。需要注意的是在basic類中定義了一個成員變數x,該變數是
Time of Update: 2015-07-11
標籤:記錄C++11新增for迴圈遍曆方法1.基於迭代器的for迴圈:for_each位於std命名空間下,我們可以看到其定義如下: inline _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func) { // perform function for each element_DEBUG_RANGE(_First,
Time of Update: 2015-07-11
標籤: srand和rand兩個函數配合可以產生偽隨機數序列。rand函數在產生隨機數前,需要系統提供的產生偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函數產生的偽隨機數序列都是一樣的。srand(unsigned
Time of Update: 2015-07-11
標籤: 在C語言的學習過程中,我們一般把所有的代碼寫在一個檔案中。隨著自身水平的提高,我們發現代碼越寫越長,程式碼數越來越多,把一個工程的所有代碼寫在一個檔案中讓人看起開非常吃力。於是我們開始想把代碼中的函數歸類,同一類放在同一個檔案中當中,那麼如何?將一個工程中的代碼放到不同檔案中呢?這就需要寫標頭檔了。下面的簡單列子將讓你學會如何寫標頭檔。你也可以點擊這裡下載原始碼自己研究。 假設我們需要定義一些與棧有關的函數,主程式需要調用這些函數。 首先,我們在同一檔案夾中建立3個檔案(要包含不同
Time of Update: 2015-07-11
標籤:#include<iostream>using namespace std;int main(void){ int x, y, num1, num2, temp; printf("請輸入兩個正整數:\n"); scanf("%d %d", &num1, &num2); if(num1 < num2)//交換 { num1^=num2; num2^=num1; num1^=num2;
Time of Update: 2015-07-11
標籤:在C++11中出現的變參模板,可以讓我們不需關心函數調用的參數多少,類似實現C中的printf函數那樣。變參依賴於C++強大的模板可以這樣聲明template<class T1,class... Args> // Args就是一種型別參數包,在定義的函數中需要遞迴去解析void MutiArg(const T1&t1,Args... args){ // do something with
Time of Update: 2015-07-11
標籤:所謂鎖,就是之鎖定的地區只能單個線程進入進行操作,其他線程在鎖的外圍等待。Monitor鎖通過Monitor.Enter(obj)和Monitor.Exit(obj)來鎖定和解鎖。Lock鎖則直接Lock(obj)進行鎖定。Monitor鎖和Lock鎖很類似,實質Lock鎖是Monitor的變體。lock(obj){}等價為:try{ Monitor.Enter(obj) }catch(){}fin
Time of Update: 2015-07-11
標籤: 上下文同步:使用SynchronizationAttribute為ContextBoundObject對象建立一個簡單的自動的同步。 這種同步方式僅用於執行個體化的方法和域的同步。所有在同一個上下文域的對象共用同一個鎖。 //如果不加上下文,那麼就是以對象為線程鎖定地區,如果加上下文,那麼就是以邏輯上下文為鎖定地區 [Synchronization(SynchronizationAttribute.REQUIRED, true)] class
Time of Update: 2015-07-12
標籤:#include<stdio.h>#include<stdlib.h>int** fmalloc(int n){int** array;int i;array = (int** )malloc(sizeof(int*) * n);for(i=0; i<n; ++i){array[i] = (int*)malloc(sizeof(int*) * (i+1));}return array;}int main(){int n;int
Time of Update: 2015-07-11
標籤:exercise 1-4/*Write a program to print the corresponding Celsius to Fahrenheit table.*/#include <stdio.h>/* print Celsius-Fahrenheit table for celsius = 0, 20, ..., 300; floating-point version */main(){ float fahr, celsius; int lower,
Time of Update: 2015-07-11
標籤:exercise 1-5/*Modify the temperature conversion program to print the table in reverse order, that is, from 300 degrees to 0.*/#include <stdio.h>/* print Fahrenheit-Celsius table in reverse order */main(){ int fahr; for(fahr = 300;
Time of Update: 2015-07-11
標籤:exercise 1-3/*Modify the temperature conversion program to print a heading above the table.*/#include <stdio.h>/* print fahrenheit-Celsius table for fahr = 0, 20, ..., 300; floating-point version */main(){ float fahr, celsius; int