Time of Update: 2015-08-16
標籤:linux
Time of Update: 2015-08-16
標籤:C++中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,本人根據各方面查到的資料進行總結如下,期望對朋友們有所協助。Const 是C++中常用的類型修飾符,常類型是指使用類型修飾符const說明的類型,常類型的變數或對象的值是不能被更新的。 一、Const作用 如下表所示:No.作用說明參考代碼1可以定義const常量 const int Max =
Time of Update: 2015-08-16
標籤:和函數的全域使用極其類似:第一種方法,也是最簡單的:在 first.h 中定義,int G_Flag=78;在對應的first.c中使用:#include "first.h"#include <stdio.h>void main(){
Time of Update: 2015-08-16
標籤:概述: 設計良好的類類型可以向內建類型一樣容易使用 0.0 這個部分會比較枯燥,都是些基本的概念理解 T.T 8.1 訪問標號類對其成員的訪問形式主要有以下兩種:1)內部訪問:在類中的創元函數對類的成員的訪問。2)對象訪問:在類外部,通過類的對象對類的成員的訪問。類的成員可以有public、protected、private三種訪問屬性,類的成員函數(內部訪問)以及友元函數可以訪問類中所有成員,但是在類外通過類的對象(對象訪問),就只能訪問該類的共有成員。 8.2
Time of Update: 2015-08-16
標籤:上一篇文章中,通過標頭檔聲明,而調用有一個特別大的漏洞:為什麼編譯器可以連結過來呢,因為預設是extern修飾的,這種類似全域範圍的功能使其可以被調用繼續加強學習:這一次有兩對C檔案: first.c first.h second.c second.hfirst.c 代碼://多檔案測試#include "head.h"#include <stdio.h>void printStr(){
Time of Update: 2015-08-16
標籤:沒有標頭檔時,通過本檔案內的函式宣告來確定定義域,實現功能://單檔案測試#include <stdio.h>/*經測試,C語言環境下子函數預設是void型;所以可省略不寫為嚴謹起見,加上void*/void printStr(); //函數定義域:從聲明點延伸到來源程式文本結束void main(){ printStr();} void printStr(){ printf("Hello world!\n");}多檔案測試:第一種方案:main.c
Time of Update: 2015-08-16
標籤: 本文主要簡述一下在Visual Studio中C++對象的記憶體布局,這裡沒有什麼測試代碼,只是以圖文的形式來描述一下記憶體分布,關於測試的代碼以及C++物件模型的其他內容大家可以參考一下陳皓先生的幾篇博文以及網上的其他一些文章:《C++虛函數表解析》:http://blog.csdn.net/haoel/article/details/1948051《C++對象的記憶體布局(上)》:http://blog.csdn.net/haoel/article/details/3081328《
Time of Update: 2015-08-16
標籤:首先瞭解C++
Time of Update: 2015-08-16
標籤:c++ 數組 動態數組 指標 1. 數組的定義數組定義中的類型名可以是內建資料類型或者類類型;除了引用之外,數組元素的類型還可以是任意的複合類型。另外,非const變數以及要到運行階段才知道其值的const變數都不能用於定義數組的維數。#include <iostream>#include
Time of Update: 2015-08-16
標籤:c++基礎 筆試題 面試題 找工作 C/C++ 經典測試題練習1、有函數定義: void test(int a){} void test(float a){} 則以下調用錯誤的是:D A. test(1); B. test(‘c’); C. test(2+’d’) D. test(0.5) 【預設const double 無法匹配int 和
Time of Update: 2015-08-16
標籤:c++ 智能指標 auto_ptr C++的auto_ptr所做的事情,就是動態指派至以及當對象不再需要時自動執行清理,使用std::auto_ptr,要#include <memory>。實現代碼如下:#include <iostream>#include <vld.h>using
Time of Update: 2015-08-16
標籤:建議52:及時釋放資源記憶體回收機制自動為我們隱式地回收了資源(記憶體回收行程會自動調用終結器),那我們為什麼要主動釋放資源呢?private void buttonOpen_Click(object sender,EventArgs e){ FileStream fileStream = new FileStream(@"c:\test.txt",FileMode.Open); }private void buttonGC_Click(object sender,
Time of Update: 2015-08-16
標籤:建議49:在Dispose模式中應提取一個受保護的虛方法在標準的Dispose模式中,真正的IDisposable介面的Dispose方法並沒有做實際的清理工作,它其實是調用了下面的這個帶bool參數且受保護的的虛方法: /// <summary> /// 非密封類修飾用protected virtual /// 密封類修飾用private /// </summary> ///
Time of Update: 2015-08-16
標籤:上一篇部落格:從位元組理解Unicode(UTF8/UTF16)。這次我將從C# code 中再一次闡述上篇部落格的內容。 C# 代碼看UTF8 代碼如下: string test = "UTF-8你"; //把字元轉換為 byte[] byte[] bytearray_UTF8 = Encoding.UTF8.GetBytes(test); // byte[] to 16
Time of Update: 2015-08-16
標籤:建議51:具有可釋放欄位的類型或擁有本機資源的類型應該是可釋放的在建議50中,我們將C#中的類型分為:普通類型和繼承了IDisposable介面的非普通類型。非普通類型除了包含那些託管資源的類型外,本身還包含一個非普通類型的欄位。在標準的Dispose模式中,我們對非普通類型舉了一個例子:一個非普通類型AnotherResource。由於AnotherResource是一個非普通類型,所以如果有一個類型,它組合了AnotherResource,那麼他就應該繼承IDisposable介面:
Time of Update: 2015-08-16
標籤:建議50:在Dispose模式中應區別對待託管資源和非託管資源真正資源釋放代碼的那個虛方法是帶一個bool參數的,帶這個參數,是因為我們在資源釋放時要區別對待託管資源和非託管資源。提供給調用者調用的顯式釋放資源的無參Dispose方法中,調用參數是true: public void Dispose() { //必須為true Dispose(true); //省略其他代碼 }這表明,
Time of Update: 2015-08-16
標籤:建議48:Dispose方法應允許被多次調用一個類型的Dispose方法應該允許被多次調用而不拋出異常。鑒於此,類型內部維護了一個私人的bool變數disposed,如下:private bool disposed = false;在實際清理代碼的方法中,加入一下判斷:if(disposed){ return; }//省略清理部分的代碼,並在方法最後為disposed賦值為truedisposed = true;這意味著,如果類型已經被清理過,那麼清理工作將不再進行。
Time of Update: 2015-08-16
標籤:前言:前面有篇從應用程式層面上面介紹了下多線程的幾種用法,有博友就說到了async, await等新文法。確實,沒有非同步多線程是單調的、乏味的,async和await是出現在C#5.0之後,它的出現給了非同步並行變成帶來了很大的方便。非同步編程涉及到的東西還是比較多,本篇還是先介紹下async和await的原理及簡單實現。C#基礎系列目錄:C#基礎系列——Linq to Xml讀寫xmlC#基礎系列——擴充方法的使用C#基礎系列&
Time of Update: 2015-08-16
標籤:建議47:即使提供了顯式釋放方法,也應該在終結器中提供隱式清理在標準的Dispose模式中,我們注意到一個以~開頭的方法,如下: /// <summary> /// 必須,防止程式員忘記了顯式調用Dispose方法 /// </summary> ~SampleClass() { //必須為false Dispose(false);
Time of Update: 2015-08-16
標籤:建議46:顯式釋放資源需繼承介面IDisposableC#中的每一個類型都代表一種資源,資源分為兩類:託管資源:由CLR管理分配和釋放的資源,即從CLR裡new出來的對象。非託管資源:不受CLR管理的對象,如Windows核心對象,或者檔案、資料庫連接、通訊端、COOM對象等。如果我們的類型使用了非託管資源,或者需要顯示地釋放託管資源,那麼就需要讓類型繼承介面IDisposable,這毫無例外。這相當於告訴調用者,類型資源是需要顯示釋放資源的,你需要調用類型的Dispose方法。