Time of Update: 2015-03-22
標籤: 前半部分簡單,僅記錄獨特之處。而指標重要,另開一篇。 C-風格字串以Null 字元結尾。strlen(char []); //(cstring和string.h)計算可見的字元數而不包含Null 字元 關於函數一般只記錄其原型,有時為了會不符合文法,注釋()是其所在標頭檔 cin處理字串時,使用空白來確定字串的結尾,且讀取時忽略空白,但會將其留在隊列,故只能讀取一個單詞。cin cin.getline(char [],int)
Time of Update: 2015-03-22
標籤:#include<iostream>using namespace std;int main() { int j; int i; int k; int a[100][100]={0}; for (i = 1; i<10; i++) a[i][0]=i; for (j = 1; j<10; j++) a[0][j]=j ; for (i = 1;
Time of Update: 2015-03-22
標籤:#include<stdio.h>#include<stdlib.h>#include<malloc.h>//定義節點struct Node{ int data; struct Node *next;};typedef Node StackNode;//定義棧 struct Stack{ StackNode *top; StackNode *base;}; typedef Stack SqStack; //定義建立棧的函數
Time of Update: 2015-03-22
標籤:一、一維數組 存放一組同種類型的資料。 1、數組的定義 元素類型 數組名[元素個數]; 1 //都是正確寫法2 int ages[5] = {10 , 11, 12, 67, 56};3 int ages[5] = {10, 11};4 int
Time of Update: 2015-03-21
標籤:最近和小夥伴們在做一個前台小架構, 已經有些人用起來了。 但是之前架構沒有引入 Ioc, 所以使用者實現我們架構開放出去的介面後,我們只能通過反射來擷取使用者的實作類別。這樣一個問題就是我們雖然定義了介面, 但其實我們依然依賴於使用者的實現,同時架構啟動異常的慢。 所以我們打算使用開源 Ioc 架構來把完成依賴注入的動作。 我們就完全關心我們自己的介面,
Time of Update: 2015-03-21
標籤:classes和templates都支援介面(interface)和多態(polymorphism)。對classes而言介面是顯式的(explicit),以函數簽名為中心。多態則是通過virtual函數發生於運行期。對template參數而言,介面是隱式的(implicit),奠基於有效運算式。多態則是通過template具現化和函數重載解析(function overloading resolution)發生於編譯期。Effective C++
Time of Update: 2015-03-21
標籤:Private繼承意味is-implemented-in-terms of(根據某物實現出)。它通常比複合(composition)的層級低。但是當derived class需要訪問protected base class的成員,或需要重新定義繼承而來的virtual函數時,這麼設計是合理的。和複合(composition)不同,private繼承可以造成empty base最佳化。這對致力於“對象尺寸最小化”的程式庫開發人員而言,可能很重要。Effective
Time of Update: 2015-03-21
標籤:在單繼承的情況下,父類構造先於子類,子類析構先於父類,例:class A {public: A() { cout << "A" << endl; } ~A() { cout << "~A" << endl; }};class B : public A {public: B() { cout << "B" << endl; } ~B()
Time of Update: 2015-03-21
標籤:多重繼承比單一繼承複雜。它可能導致新的歧義性,以及對virtual繼承的需要。virtual繼承會增加大小、速度、初始化(及賦值)複雜度等等成本。如果virtual base classes不帶任何資料,將是最具實用價值的情況。多重繼承的確有正當用途。其中一個情節涉及“public繼承某個Interface class"和”private繼承某個協助實現的class“的兩相組合。Effective C++ -----條款40:明智而審慎地使用多重繼承
Time of Update: 2015-03-21
標籤:虛繼承(virtual inheritance):文法:class SubClass : virtual public
Time of Update: 2015-03-21
標籤:封裝 c++-虛函數 c++ 物件導向的三大特徵=封裝性+繼承性+多態性 封裝=將客觀事物抽象成類,每個類對自身的資料和方法實行許可權的控制 繼承=實現繼承+可視繼承+介面繼承 多態=將父類對象設定成為和一個或者更多它的子物件相等的技術, 用子類對象給父類對象賦值之後,
Time of Update: 2015-03-21
標籤: 多線程程式中為了防止線程並發造成的競態,需要經常使用到Mutex進行資料保護。posix提供了phtread_mutex_t進行互斥保護資料。Mutex的使用需要初始化和釋放對應(phtread_mutex_init() 和 phtread_mutex_destroy() 對應),上鎖和解鎖對應(phtread_mutex_lock 和
Time of Update: 2015-03-21
標籤:Effective C++ 閱讀筆記_條款27 盡量少做轉型動作1.轉型的三種形式,可以分為兩大類。 (1)舊式轉型(old-style casts) (1.1) (T) expresstion (1.2) T (expression) (2) 新式轉型(c++-style casts) (2.1)const_cast<T> (expression) (2.2)dynamic_cast<T>
Time of Update: 2015-03-21
標籤:自己寫了一個C++模板類,可是在vs2012中死活顯示無法解析它的成員函數。開始怎麼也想不通,因為我是按照普通方式布置的:標頭檔放聲明,在同名源檔案中放實現,並包含其標頭檔。後來百度了一下才發現,模板類未執行個體化的情況下不會出現普通函數類似的多重包含導致的重定義。因此,解決方案如下:法一: 將聲明和實現都放在xxx.h檔案中,然後在需要的地方include"xxx.h"即可法二: 1.將模板類聲明(包括關鍵字export)放在一個標頭檔中,並使用#include編譯指令時程式能夠使用
Time of Update: 2015-03-22
標籤:1. 物件導向編程的三大支柱:Encapsulation, Polymorphism, Inheritance,封裝是將某類事物共有的屬性和行為抽象出來打包成為一個類,從而實現代碼的簡化2.
Time of Update: 2015-03-21
標籤:3.事件 事件作為C#中的一種類型,為類和類的執行個體定義發出通知的能力,從而將事件和可執行代碼捆綁在了一起。事件是對象發送的訊息,以發訊號通知操作的發生。操作可能是由使用者互動引起的,也可能是由某些其他的程式邏輯觸發的。引發(觸發)事件的對象叫做事件發送方,捕獲事件並對其做出響應的對象叫做事件接收方。
Time of Update: 2015-03-21
標籤:1.C#的內建類型同樣很多,而且需要聲明變數並且在此基礎上操作,發現了一個以前不知道的東西:可以根據ASCII打出字元 還有類型轉換時要注意被賦值對象的範圍不能少於賦值變數的範圍,此時需要將後面的變數的範圍通過顯示轉換強行縮小並且還要保證後面變數的值仍然在縮小的範圍內 還有預留位置{},表示佔了個位置給後面逗號緊跟著的變數 2.Braching Statements中的表述必須是布爾型的,switch中case必須用goto(spaghetti
Time of Update: 2015-03-21
標籤:先來一段代碼引入主題。如果你可以直接說出代碼的輸出結果,說明本文不適合你。(代碼引自《深入理解C#》第三版) class Program { private delegate void TestDelegate(); static void Main(string[] args) { TestDelegate[] delegates = new TestDelegate[2]; int
Time of Update: 2015-03-22
標籤:題意:給你一棵樹,有三種規則1)根節點不能選2)選了這個點 它 的父親節點和子節點都不能選。3)一個點只能選其中的一個子節點。問你選點的最大值解題思路:樹形DP。DP[I][1/0]表示選或不選最大的。解題代碼: 1 // File Name: c.cpp 2 // Author: darkdream 3 // Created Time: 2015年03月21日 星期六 14時55分57秒 4 5 #include<vector> 6 #include<list>
Time of Update: 2015-03-21
標籤:題目: 我選擇的題目是讓程式能接受使用者輸入答案,並判定對錯。最後給出總共對/錯 的數量。設計思路: 在每種結果後添加判斷語句如果正確則輸出回答正確,如果錯誤則輸出回答錯誤。第設計一次時已經實現了判斷正誤並計數,此次將第一次與第二次的融合了一下。原始碼如下: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <time.h> 4 int main() 5 { 6 int