原创 Canvas 學習筆記---基礎圖形的繪製

一、Canvas的座標系 說到座標系,大家都不陌生,在數學中,我們學習過平面座標系。在HTML中,也存在着座標系。Canvas的座標系和HTML的座標系是類似的。有一定的相同的地方,也有不同的地方。 相同點:Canvas和HTML

原创 《設計模式學習總結 一》

第一章 簡單工廠模式 1.好的設計模式: 可維護 ----只需要更改要改的代碼 可複用----代碼可以重複使用 可擴展----添加功能只需要另外加入代碼就可以 靈活性----只需將代碼移動就可以做到滿足排列需求 2.面向對象的好處

原创 《STL 源碼解析》之序列式容器

序列式容器 所謂序列容器即容器其中的元素都可序,但未必有序。常見的序列容器包括vector,list,deque,queue以及stack. vector array是靜態空間,一旦配置就不可改變。vector是動態空間,隨着元素

原创 c++複數類Complex的編寫

c++複數類Complex的編寫。 複數:由實部和虛部組成。 主要實現幾個運算符的重載:=/==/+/-/+=/-+/前置++/前置–/後置++/後置– 主要實現代碼如下: 頭文件Complex.h 函數聲明和類定義 #inclu

原创 《Effitive C++學習》之定製new和delete

第8章 定製new和delete 條款49:瞭解new-handler的行爲 當operator new無法滿足某一內存分配需求時,它就會拋出異常。它就會調用一個用戶指定的錯誤處理函數new-handler(它其實是一個type

原创 宏和函數的區別

  #define  定義宏    #define機制包括了一個規定,允許把參數替換到文本中,這種實現通常稱爲宏或者定義宏。 宏和函數區別: 1.代碼長度:每次使用時,宏代碼都被插入到程序中,除了非常小的宏之外,程序的長度將大幅度增長。但

原创 c++入門基礎知識

c++入門 命名空間 在c++中,爲了避免標識符的命名發生衝突,標準c++引入了關鍵字namespace(命名空間),可以更好的控制標識符的作用域。 先看一個程序: #include <iostream> using nam

原创 四個默認成員函數和運算符重載

一.類和對象的基礎知識 1.類的定義 在C++中,用“類”描述“對象”,所謂的對象是指現實世界中的一切事物。 類是創建對象的模板,一個類可以創建多個對象,每個對象都是類的一個具體實例,擁有類的成員變量和成員函數。 類的

原创 菱形繼承問題和虛繼承是如何解決二義性與數據冗餘的

菱形繼承問題和虛繼承是如何解決二義性與數據冗餘的 繼承是c++的三大特性之一,其中菱形繼承問題是一個值得我們學習和掌握的知識點。 1.什麼是菱形繼承呢? 菱形繼承定義爲:兩個子類繼承同一個父類,而又有子類同時繼承這兩個父類。

原创 指針

1.指針數組 #定義:指向指針的數組。 #理解: 一個存放int類型的數組稱爲整型數組,那麼存放指針的數組就叫指針數組。 int *arr[10]; #指針數組中的每一個元素均爲指針,指針數組中的元素可以表示爲“*(*(arr

原创 可變參數列表源碼的剖析

C語言可變參簡介 我們在C語言編程中會遇到一些參數個數可變的函數,例如printf()這個函數,它的定義是這樣的:       int printf( const char* format, ...); 它除了有一個固定參數form

原创 掃雷 簡易版

用c語言寫一個簡易的掃雷遊戲 //game.h #define _CRT_SECURE_NO_WARNINGS 1 #ifndef __GAME_H__ #define __GAME_H__ #include<stdio.h> #i

原创 c語言實現單鏈表面試題--基礎篇

1.比較順序表和鏈表的優缺點,說說它們分別在什麼場景下使用? 優缺點 順序表和鏈表: 1.每個元素的訪問 順序表內存訪問時,不需要多次內存到緩存的步驟,鏈表每個節點都需要指針找到內存然後加載到緩存中. 2.頭插.頭刪.中

原创 c語言中回調函數的使用

c語言中回調函數的使用 1.c語言中的回調 函數指針 回調在c語言中時通過函數指針來實現的,通過回調函數的地址傳給被調函數從而實現回調。因此,要實現回調,必須首先定義函數指針,請看下面的例子: void Func(char *s)

原创 c語言中的數組sizeof和strlen

sizeof   strlen sizeof():  返回一個對象或者類型所佔的內存字節數。 strlen():  用來計算字符串的長度,遇到"\0"結束。 我們分別從一維數組,字符數組,二維數組的例子來分析。 注:數組名代表整個數組