從C到C 要注意的33件事 1

2021-07-24 19:53:29 字數 3616 閱讀 4543

11.你可能知道一些c語言中的經典控制語句,但是c++增加了一些新的,像exception
using namespace std;

#include #include int main ()

catch (int result)

cout << "b contains: " << b << endl;

cout << endl;

// another example of exception use:

char zero = "zero";

char pair = "pair";

char notprime = "not prime";

char prime = "prime";

trythrow prime;

}catch (char *conclusion)

cout << endl;

return 0;

}

output 

type

a number: 5 result is: 10 b contains: 11 the number you typed is prime

12 函式可以有預設引數

using namespace std;

#include double test (double a, double b= 7)

int main ()

output

9

7

13 c++很重要的一點是函式過載, 編譯器可以通過引數個數,型別等來識別同樣命名的函式

using namespace std;

#include double test (double a, double b)

int test (int a, int b)

int main ()

output

11

, 2

14 通過運算子過載可以定義一些新的引數型別
using namespace std;

#include struct vector

;vector operator * (double a, vector b)

int main ()

(6.28319, -3.14159)

15 在c中你可以能定義一樣的函式多次,分別為了不同的輸入引數,int, float, double,有可能還會忘記一些,c++可以幫助你解決這個問題,那就是通過模版類。

using namespace std;

#include template

ttype minimum (ttype a, ttype b)

int main ()

most little: 6

most little: 7.9

most little: 3.5

16 new和delete可以用來申請和釋放記憶體,他們比c中的malloc和free更整潔些,還可以用來釋放陣列型別存廢昂

using namespace std;

#include #include int main ()

delete d;

char *s;

s = new char[100];

strcpy (s, "hello!");

cout << s << endl;

delete s;

return 0;

}

output

type

a number: 6 result: 11 content of d[1]: 5023 hello!

17 標準c中,結構只能包括資料。但是在c++中,結構可以包括函式,這些函式能夠使用結構內部的資料。我們叫這種函式為方法
using namespace std;

#include struct vector

};int main ()

output

the

su***ce of a: 1

18 建構函式和析構函式,他們分別在類的例項建立和刪除的時候呼叫。建構函式可以用來做初始化類等一些在類建立例項的時候需要的工作,而析構函式往往是釋放資源。

using namespace std;

#include class vector

vector (double a, double b)

};int main ()

output

vector

k: 0, 0

vector m: 45, 2

vector k: 23, 2

19 如果你像容器一樣例項化乙個物件,那麼所有的問題都不存在。舉個例子,如果vector k 包括(4,7),那麼如果我們例項化m=k,,m也會有(4,7),

k.x和k.y會被複製給m.x,m.y.現在假設你有個person類,裡面有乙個字串指標,如果你例項化這個person類通過p=r,那麼會有一些工作用來保證p被正確的從r上覆制過來。然而p.name指向和r.name一樣的物理字串,並且p.name指向的字元指標有可能會丟失成為記憶體洩露。

拷貝建構函式可以正確的讓你的物件複製拷貝在物件進行計算的時候,這是乙個類的關鍵方法。

using namespace std;

#include #include class person

person (const person &s)// the copy constructor

person& operator= (const person &s)// overload of =

~person ()

};void modify_person (person& h)

person compute_person (person h)

int main ()

output

no

name, age 0

john, age 56

john, age 56

bob, age 10

bob, age 17

bob, age 17

bob, age 24

從C到C 要注意的33件事(2)

20 如果你不想用inline來宣告乙個方法,或者你指向在類的定義裡面包含最少的內容 或者你想用.hpp和.cpp來隔離源 和宣告 那麼你只需要在類定義裡面宣告一下方法,然後在該類下面實現它就可以了。using namespace std include class vector show it i...

專案經理需要注意的四件事

color red 先前的題目 專案管理四要素 表述的可能不準確,改了一下。color 很多人在做專案經理的時候會陷入到一種錯誤的誤區,認為專案管理就是工作分解,任務分配,工作結果監督,編寫文件,召開會議,這樣的做法在傳統的工業化的專案中可能是最好的措施,但是在軟體行業卻不是這樣。軟體行業是強調人的...

從學生到遊戲開發者 我學到的五件事

三年前,我參加了乙個遊戲研發課程,在此之前我從來沒有學過程式設計。現在,我非常自豪地成為了 failbetter games 工作室的一名開發者。這期間的過程常常感覺一頭霧水,由於沒有基礎,所以大多數的時間都埋頭在知識的海洋裡,很少有時間停下來反思一些事情,寫這篇部落格就是很難得的一次。這裡,我希望...