Time of Update: 2018-12-04
從文法上看,在函數裡聲明參數與在catch子句中聲明參數幾乎沒有什麼差別: class Widget { ... }; //一個類,具體是什麼類 // 在這裡並不重要 void f1(Widget w); // 一些函數,其參數分別為 void f2(Widget& w); // Widget, Widget&,或 void f3(const Widget& w); // Widget* 類型 void f4(Widget *pw);
Time of Update: 2018-12-04
using System;using System.ComponentModel;// The following example demonstrates how to create// a resource class that implements the IDisposable interface// and the IDisposable.Dispose method.public class DisposeExample{ // A base class that
Time of Update: 2018-12-04
上一篇文章裡實現了二維動態數組的建立和銷毀,現在來看一個稍加複雜一點的執行個體:鏈表,讀者需具有鏈表的基本知識,本文的鏈表實現與讀者所熟知的實現有一些差異。
Time of Update: 2018-12-04
#include <string>#include <iostream>using namespace std;int main(){char str1[] = "Hello";char *str2 = "Hello";char str3[] = {'H', 'e', 'l', 'l', 'o'};cout << sizeof(str1) << '/t' << strlen(str1) << endl;cout
Time of Update: 2018-12-04
1.把C++當成一門新的語言學習(和C沒啥關係!真的。); 2.看《Thinking In C++》,不要看《C++變成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object
Time of Update: 2018-12-04
<stdexcept>Defines several standard classes used for reporting exceptions. The classes form a derivation hierarchy all derived from class exception and include two general types of exceptions: logical errors and run-time errors. The logical
Time of Update: 2018-12-04
#include <iostream>#include <time.h>using namespace std;template <typename T>struct Node{T data;Node<T> *next;};template <typename T>class MyLinkList{public:MyLinkList();~MyLinkList();void insertTail(T d);void
Time of Update: 2018-12-04
自己寫了一個字串分割函數,可以根據提供的分隔字元串列表將指定的字串分割為若干個字串,分隔字元可以是單個字元也可以是字串,可以設定是否壓縮分隔字元串(即當兩個或者兩個以上分隔字元串聯續出現時不產生空串),也可以設定是否把尋找到的分隔字元串也插入到結果中。需要注意的是結果是動態分配的記憶體,使用完畢後需要自己釋放。#include <stdio.h>#include <string.h>#include <stdlib.h>/** * Split a
Time of Update: 2018-12-04
Effective item 12 new 分配空間->初始化->建構函式malloc 分配空間 對象的建立分兩步:1. 資料成員初始化。(參見條款13)2. 執行被調用建構函式體內的動作。 class AA{public:string s;};int main(){AA *a = (AA *)malloc(sizeof(AA));a->s = "abc";system("pause");return 0;}由於a中的s未被初始化,也就是沒有調用string的預設建構函式
Time of Update: 2018-12-04
#include <iostream>#include <algorithm>#include <boost/array.hpp>#include <algorithm>#include <string>#include <vector>using namespace std;struct A{enum{SIZE = 3};A(){cout << "Constructor." << endl;p =
Time of Update: 2018-12-04
寫正題之前,先給出幾個關鍵字的中英文對照,重載(overload),覆蓋(override),隱藏(hide)。在早期的C++書籍中,可能翻譯的人不熟悉專業用語(也不能怪他們,他們不是搞電腦編程的,他們是英語專業的),常常把重載(overload)和覆蓋(override)搞錯! 我們先來看一些代碼及其編譯結果。 執行個體一: #include "stdafx.h" #include <iostream.h> class CB { public:
Time of Update: 2018-12-04
class MyString {public:friend ostream& operator<<(ostream &out, const MyString &str);MyString(const char *s) {assert(s != NULL);cout << "Constructor" << endl;int sz = strlen(s);str = new char[sz + 1];strcpy(str,
Time of Update: 2018-12-04
字串:void ABTR("quint32 ab"){ string s = TR("sky is blue."); obj.foo(TR('rose is red.')); obj.foo(TR('rose is red.")); obj.foo(TR("Mike (Mike Lee)say /"He is hungury/""))} Regex:(?<!/w)(?:TR/()('|")(.*)/1(?:/)) C++ boost:#include
Time of Update: 2018-12-04
第一:基礎知識 (1)寄存器,參數傳遞的使用規則 A.在子程式中,使用寄存器R4~R11來儲存局部變數。 B.寄存器R12用於子程式間scratch寄存器(用於儲存SP,在函數返回時使用該寄存器出桟),記作IP。 C.寄存器R13用於資料棧指標,記作SP。寄存器SP在進入子程式時的值和退出子程式時的值必須相等。 D.寄存器R14稱為連結寄存器,記作LR。它用於儲存子程式的返回地址。 E.寄存器R15是程式計數器,記作PC
Time of Update: 2018-12-04
在OK6410的UART 中看到這個 3個點 有點不知道什麼意思。。於是通過網路搜尋了些。。總結總結。。如下void UART_Printf(const char *fmt,...){ va_list ap; char string[256];int i; va_start(ap, fmt); vsprintf(string, fmt, ap); for (i = 0; string[i]; i++)UART_Putc(string[i]);
Time of Update: 2018-12-04
文章目錄 1.new 在現有的堆上再次分配2.一些喜歡出錯的運算子多載(括弧、使用者自訂)3.const 修飾函數4.採用const_cast 進行轉換5.不可以拷貝的對象6.RTTI(Run-Time Type Identification)7.typeid8.箭頭重載9.等繼..... 1.new 在現有的堆上再次分配char *cp = new char[100],ch[50];int *p = new(cp) int ;*p=58
Time of Update: 2018-12-04
我們可以思考一下,當我們定義一個形式上空的類,C++為這個類提供了哪些預設功能?是否可以說齊全呢?有些看起來理所當然的東西,也是需要預設實現的。看簡單代碼view sourceprint?01#include <iostream> 02 03class TTestClass{}; 04 05int main(int argc,char**argv) 06{ 07 TTestClass tc;08 TTestClass *p = &tc;09 tc =
Time of Update: 2018-12-04
“什麼是運算子的重載”與“為什麼要引入運算子多載?”這兩個問題,在這裡都不多說了,百度一下就都OK了下面說了一下一些比較容易錯的重載,首先看看模板們是如何聲明重載的下是iterator 模板中的一段源碼,大家看看它的格式:iterator 的一段源碼typedef _Vector_iterator<_Ty, _Alloc> _Myt;reference operator*() const{// return designated objectreturn ((reference)**
Time of Update: 2018-12-04
本文總結二叉樹的各種操作與C語言的實現標頭檔#include <stdio.h>#include <stdlib.h>#include <time.h>#include <queue>using namespace std ;資料結構typedef struct Node{char data ;struct Node * rchild ;struct Node * lchild ;}Node,*pNode;隨機建立二叉樹的資料void
Time of Update: 2018-12-04
如果一個變數你需要幾種可能存在的值,那麼就可以被定義成為枚舉類型。之所以叫枚舉就是說將變數或者叫對象可能存在的情況也可以說是可能的值一一例舉出來。 舉個例子來說明一吧,為了讓大家更明白一點,比如一個鉛筆盒中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就可以定義一個枚舉類型來表示它!enum box{pencil,pen};//這裡你就定義了一個枚舉類型的變數叫box,這個枚舉變數內含有兩個元素也稱枚舉元素在這裡是pencil和pen,分別表示