1. 程式人生 > >c++程式設計例項

c++程式設計例項

1、
#include<iostream>
using namespace std;
int main()
{
	cout << "Hello world!" << "\n";
	return 0;
}

結果

Hello world!
2、
#include<iostream>
#include<string>
using namespace std;

extern int a, b;
extern int c;
extern float f;
int main()
{
	//定義變數
	int a, b;
	int c;
	float f;
	
	//實際初始化
	a = 10;
	b = 20;
	c=a+b;
	
	cout << c << endl;
	f = 70.0/3.0;
	cout << f << endl;
	return 0;
}

結果:

30
23.3333

3、

#include<iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
//#define NEWLINE '\n'

int main()
{
	int area;
	area = LENGTH * WIDTH;
	cout << area;
//	cout << NEWLINE;
	return 0;
}

結果:

50

3、常量定義demo2

int main()
{
	const int LENGTH = 10;
	const int WIDTH = 5;
	int area;
	area = LENGTH * WIDTH;
	cout << area;
//	cout << NEWLINE;
	return 0;
}

結果:

50

4、static儲存類用法

void func(void);
static int count = 10;
int main()
{
	while(count--)
	{
		func();
	}
	return 0;
}
void func(void)
{
	static int i = 5;
	i++;
	std::cout << "變數i為" << i;
	std::cout << ",變數count為" << count << std::endl;
}

結果:

變數i為6,變數count為9
變數i為7,變數count為8
變數i為8,變數count為7
變數i為9,變數count為6
變數i為10,變數count為5
變數i為11,變數count為4
變數i為12,變數count為3
變數i為13,變數count為2
變數i為14,變數count為1
變數i為15,變數count為0
static int i = 5;

改為

int i = 5;

結果:

變數i為6,變數count為9
變數i為6,變數count為8
變數i為6,變數count為7
變數i為6,變數count為6
變數i為6,變數count為5
變數i為6,變數count為4
變數i為6,變數count為3
變數i為6,變數count為2
變數i為6,變數count為1
變數i為6,變數count為0

4、extern儲存類

main.cpp

#include <iostream>

int count;
extern void write_extern();

int main()
{
count = 5;
write_extern();
}

support.cpp

#include <iostream>

extern int count;

void write_extern(void)
{
std::cout << "Count is" << count << std::endl;
}

執行:

$ g++ main.cpp support.cpp -0 write
$ ./write
結果:
Count is 5

5、迴圈

while語句

int main()
{
	int a = 10;
	while( a < 20 )
	{
		cout << a << endl;
		a++;
	}
}

結果:

10
11
12
13
14
15
16
17
18
19

for語句(基於範圍的)

int my_array[5] = {1, 2, 3, 4, 5}; // 每個陣列元素乘於 2 
for (int &x : my_array) 
{ 
	x *= 2; 
	cout << x << endl; 
} // auto 型別也是 C++11 新標準中的,用來自動獲取變數的型別 for (auto &x : my_array) { x *= 2; cout << x << endl; }

結果:

/tmp/381229462/main.cpp:29:1: error: expected unqualified-id
for (int &x : my_array) 
^
1 error generated.

exit status 1

原因:

程式執行是從main函式入口執行的,把程式語句放在全域性空間裡不被執行。要放在某個函式裡或巨集裡等等

rang for 遍歷字串,將小寫變成大寫

#include <iostream>
#include <cctype>
#include <string>
using namespace std;
//string str("guo zehui");
string str = "guozehui";
int main()
{
	for (auto &c : str)
	{
		c = toupper(c);
		
	}
	cout << str << endl;
}

結果:

GUOZEHUI

6、生成隨機數

#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;

int main()
{
	int i,j;
	srand( (unsigned)time( NULL ));
	for (i = 0; i < 10; i++)
	{
		j=rand();
		cout << j << endl;
	}
}

結果:

1338961599
1566172925
1291431620
1754761110
805075681
329934179
1769264811
1209019267
1283590728
579234732

先呼叫srand()函式,再使用rand()返回隨機數。

7、class類的定義

#include <iostream>
using namespace std;


class Box
{
	public:
	double length;
	double breadth;
	double heigth;
};
int main()
{
	Box box1;
	Box box2;
	double volume = 0.5;
	box1.length = 1;
	box1.breadth = 2;
	box1.heigth = 3;
	
	box2.length = 4;
	box2.breadth = 5;
	box2.heigth = 6;
	
	volume = box1.length*box1.breadth*box1.heigth;
	cout << volume << endl;
}

結果:

6

class定義成員函式

#include <iostream>
using namespace std;


class Box
{
	public:
	double length;
	double breadth;
	double heigth;
	
	double getVolume(void)
	{
		return length*breadth*heigth;
	}
	void setLength(double len)
	{
		length = len;
	}
	void setBreadth(double bre)
	{
		breadth = bre;
	}
	void setHeigth(double hei)
	{
		heigth = hei;
	}
};
int main()
{
	Box box1;
	Box box2;
	double volume = 0.5;
	box1.setLength(1.0);
	box1.setBreadth(2.0);
	box1.setHeigth(3.0);
	
	volume = box1.getVolume();
	
	cout << volume << endl;
}

結果:

6

疑點:

1、explicit建構函式

2、string str ("guozehui");跟string str = "guozehui";區別

string是個類,string str,是定義一個名叫str的字串物件。

str內部儲存著字串的內容,通過str.c_str()可以獲取這個字串的首地址。
string str = "ABC",這也不是將str賦值為"ABC"的首地址,而是使用"ABC"為值來初始化一個string類
在字串變數中存放的是字串的指標(即字串的地址)。在vc++6.0環境下,string變數在記憶體中佔4個位元組,指標變數在記憶體中也是佔4個位元組,它們都用於存放變數的首地址。

字串的首地址不是字串的第一個字元!字串的首地址是字串的第一個字元的地址,這第一個字元的地址的內容才是這個字串的第一個字元。

4、函式定義中return_type,當無返回值時,用void

包含一個整型和一個指標陣列

形式:

int main(int argc, char* argv[])

6、&x,引用呼叫,將引用的地址複製給形式引數,修改形參會影響實際引數。

7、ctime

定義time_t型t變數

time_t t;

7、定義靜態常量

只有靜態整數(注意,不僅僅是整型)常量可以在類中宣告並初始化,其他的都必須在類外初始化。
8、
要給“別人”使用的變數和函式就用public
只給自己使用的變數和函式就用private
protected。。。這個只能說概念了。。。就是想要允許他的子類直接訪問,就用protected

8、類::成員(引數)

eg:Box::get(double len);

9、#include <>與#include ""區別

include <>引用的是編譯器的類庫路徑裡面的標頭檔案。

#include ""引用的是程式目錄的相對路徑中的標頭檔案。

10、.hpp(Header Plus Plus)c++程式標頭檔案格式