Time of Update: 2018-12-03
下面對於C++中方法中參數聲明以及定義中的參數賦值為0調用問題,在實際的工作中遇到,便進行了相關的示範處理。如下查看紅色部分的差異。/////////////////////////////////////////////////////////#include <iostream>using namespace std;class T1{public: T1(){} virtual ~T1 () {}public:
Time of Update: 2018-12-03
Item 43: 瞭解如何訪問 templatized base classes(模板化基類)中的名字作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/假設我們要寫一個應用程式,它可以把訊息傳送到幾個不同的公司去。訊息既可以以加密方式也可以以明文(不加密)的方式傳送。如果我們有足夠的資訊在編譯期間確定哪個訊息將要發送給哪個公司,我們就可以用一個 template-based(
Time of Update: 2018-12-03
Introduction(導言)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/學習一種程式設計語言的基礎是一回事;學習如何用那種語言設計和實現高效率的程式完全是另外一回事。對於 C++ ——一種以擁有非同尋常的能力範圍和表現力而自豪的語言——更是尤其如此。如果能正確使用,與 C++ 共事是一件令人快樂的事情。極多樣的設計樣式被直接表達並有效實現。對於 classes(類)
Time of Update: 2018-12-03
Item 22: 將 data members(資料成員)聲明為 private作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/好了,先公布一下計劃。首先,我們將看看 data members(資料成員)為什麼不應該是 public(公有)的。然後,我們將看到所有反對 public data members(公有資料成員)的理由同樣適用於
Time of Update: 2018-12-03
(點擊此處,接上篇)已知 MsgSender 針對 CompanyZ 被特化,再次考慮 derived class(衍生類別)LoggingMsgSender:template<typename Company>class LoggingMsgSender: public MsgSender<Company> {public: ... void sendClearMsg(const MsgInfo& info) { write "before
Time of Update: 2018-12-03
嘻嘻,這題做得還算輕鬆,題目的加法過程就是們運算的異或運算首先我們假設給出的數可以被分成兩堆,其中全部數異或後相等,A堆{a1,a2,a3,a4……an}, B堆{b1,b2,b3,b4……bm} a1^a2^a3^a4……^an = b1^b2^b3^b4……^bm,那麼很容易知道上兩邊同時異或(an--a2)a1 = b1^b2^b3^b4……bm^an^a(n-1)^a(n-2)……^a3^a2也就是對於給寫的(n+m)個數只要其中一個數 ==
Time of Update: 2018-12-03
7.3 條件編譯命令 在一般情況下,來源程式的所有程式行都會參加編譯,以產生目標代碼。但在某些特殊情況下,也許只希望對部分滿足條件的程式行進行編譯,這就是條件編譯。 程式員可在偵錯工具中增加一些調試語句,以達到跟蹤的目的。當程式調試好後,再利用條件編譯重新編譯,使調試語句不參與編譯,以產生高效的代碼。 常用的條件編譯命令有如下三種格式: 1.格式一 #ifdef <標識符> 程式段1 #else
Time of Update: 2018-12-03
方法一:SYSTEMTIME st;GetLocalTime(&st);方法二:// asdfasdf.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <Windows.h>#include <iostream>#include <time.h>#include <locale.h>int _tmain(int argc, _TCHAR* argv[]){time_t
Time of Update: 2018-12-03
今天換了個別人的eclipse,然後用了自己的SDK,然後就提示ADT版本低了。然後就想開啟SDK manager看看,結果在eclipse中居然不能運行SDK manager了,提示是Failed to convert path to a short DOS path: C:\Windows\system32\java.exe,目前還不知道什麼原因,參考了下別人的辦法,只要找到SDK目錄的tool/lib的目錄下的find_java.bat檔案夾,修改下列兩行,去掉-s參數for /f
Time of Update: 2018-12-03
delegate是C#中的一種類型,它實際上是一個能夠持有對某個方法的引用的類。與其它的類不同,delegate類能夠擁有一個簽名(signature),並且它只能持有與它的簽名相匹配的方法的引用。A delegate declaration defines a reference type that can be used to encapsulate a method with a specific signature. A delegate instance encapsulates a
Time of Update: 2018-12-03
TextBox控制項的一些事件每一個控制項都有許許多多的事件,有的是相同的,比如滑鼠,鍵盤事件,這些事件每一個控制項都有,而有的是不同的。具體可以到MSDN去查看每個控制項所擁有的事件。這裡我給出TextBox控制項在MSDN裡的事件一覽表網址:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.textbox_events(v=vs.80).aspx我們先來瞭解三個事件KeyDown,KeyPress,和KeyUp。不同類型
Time of Update: 2018-12-03
以前在學習資料結構的時候一直沒弄懂函數參數裡面傳遞 ** p 以及使用 &的含義,這裡摘抄了一小段文章方便理解。不懂的時候再看看這幾段代碼。指標參數是如何傳遞記憶體的? 如果函數的參數是一個指標,不要指望用該指標去申請動態記憶體。見如下例子:void GetMemory(char *ip, int num){ ip = (char *)malloc(sizeof(char) * num);}void Test(void){ char *str =
Time of Update: 2018-12-03
1.非引用形參包括普通對象形參和指標對象形參這類形參都是在調用函數時,在棧中臨時分配一個局部副本,然後初始化,即複製實參傳遞的資料。調用函數並沒有訪問實參傳遞值本身,也因此不會修改實參傳遞的數值,即函數對這類形參所做的操作和改動僅僅是改變了局部副本的值,不會影響到實參傳遞的資料本身。非引用形參表示對應實參的局部副本,同時也意味著都需要開銷,不同的是指標形參所花的時間開銷和儲存開銷基本是固定而且很小,而普通非指標對象的開銷則需要根據對象具體大小來定。一旦函數執行結束,這些局部變數的值也就沒有了。注
Time of Update: 2018-12-03
Chapter 6. Inheritance(繼承)和 Object-Oriented Design(物件導向設計)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/Object-oriented programming (OOP) 已經流行了差不多 20 年,所以,你很可能對 inheritance(繼承),derivation(派生)和 virtual
Time of Update: 2018-12-03
Item 26: 只要有可能就延遲 variable definitions(變數定義)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/只要你定義了一個帶有 constructor(建構函式)或
Time of Update: 2018-12-03
Item 9: 絕不要在 construction(構造)或 destruction(析構)期間調用 virtual functions(虛擬函數)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/我以這個概述開始:你不應該在 construction(構造)或 destruction(析構)期間調用 virtual
Time of Update: 2018-12-03
(點擊此處,接上篇)這一行為背後的根本原因是為了防止“當你在一個 library 或者 application framework 中建立一個新的 derived class 時,偶然地發生從遙遠的 base classes 繼承 overloads 的情況”。不幸的是,一般情況下你是需要繼承這些 overloads 的。實際上,如果你使用了 public inheritance 而又沒有繼承這些 overloads,你就違反了 Item 32 講解的“base 和 derived
Time of Update: 2018-12-03
Item 18: 使 interfaces(介面)易於正確使用,而難以錯誤使用作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/C++ 被淹沒於 interfaces(介面)中。function interfaces(函數介面)、class interfaces(類介面)、template interfaces(模板介面)。每一個
Time of Update: 2018-12-03
這幾日接接觸SystemC,有些感觸:1. SystemC 是一套C++ Class Library,將C++擴充成了一門硬體描述語言(HDL)。我感覺,學習SystemC至少要懂兩樣東西:C++、一門硬體描述語言。我熟悉C++,並且熟悉Verilog,因此學SystemC能舉一反三、觸類旁通。2. SystemC 使用了C++的很多特性:多重繼承、虛擬繼承、模板、RTTI (at least for dynamic_cast)、異常處理、操作符重載。似乎沒有使用STL。3. SystemC
Time of Update: 2018-12-03
Chapter 2. Constructors(建構函式),Destructors(解構函式)與 Assignment Operators(賦值運算子)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/幾乎每一個你自己寫的 class(類)都會有一個或多個 constructors(建構函式),一個 destructor(解構函式)和一個 copy assignment