C語言到C++ 基礎1

從C語言到C++ 基礎及引用

#include "iostream"		//包含c++頭文件

using namespace std;
			//使用命名空間  std標準的命名空間

void main01()
{
	//cout 標準輸出 黑屏幕
	cout << "hello...." << endl;
	system("pause");
}

//求圓的面積 面向過程的方法
void main02()
{
	double r = 0;
	double s = 0;

	cout << "請輸出圓的半徑:";	//輸出
	cin >> r;					//cin 代表鍵盤輸入
	s = 3.14*r*r;
	cout << "圓的半徑爲:" << r << endl;
	cout << "圓的面積爲:" << s << endl;

	system("pause");

}




//面向對象的方法
class MyCicle
{
public:
	double m_r;		//半徑  屬性 成員變量
	double m_s;		//面積

public:
	void setR(double r)		//成員函數
	{
		m_r = r;
	}
	double getR()		//成員函數
	{
		return m_r;
	}
	double getS()
	{
		m_s = 3.14*m_r*m_r;
		return m_s;
	}
};
//求圓的面積 面向對象的方式
//用面向對象的方法
//1 類的抽象 成員變量和成員函數
//2實例化  類的對象
//3 求面積
	//面向過程加工的是類
//4 main集成測試
//思考 類是一個數據類型 定義一個類是抽象的概念,不分配內存
//用數據類型定義變量才分配類型

void main03()
{
	MyCicle c1, c2, c3;	//用類定義對象
	double r1;
	cout << "請輸出c1圓的半徑:";
	cin >> r1;
	c1.setR(r1);
	cout << "c1圓形的面積是:" << c1.getS() << endl;

	double r2;
	cout << "請輸出c1圓的半徑:";
	cin >> r2;
	c2.setR(r2);
	cout << "c1圓形的面積是:" << c2.getS() << endl;


	system("pause");
}

 命名空間

#include  "iostream"

using namespace std;
//1.文件中iostream 沒有引入標準的std;需要手工寫	
//7.如果不寫 using namespace std; 需要顯示的引入std
void main04()
{
	std::cout << "namespace test" <<std::endl;

	system("pause");
}
//3.定義命名空間
namespace namespaceA	
{
	int a = 10;
}

namespace namespaceB
{
	int a = 20;
	namespace namespaceC //可嵌套
	{
		struct Teachar
		{
			char name[32];
			int age;
		};
	}
}

//4.使用命名空間

void main05()
{
	using namespace namespaceA;
	using namespace namespaceB;
	cout << namespaceA::a << endl; 
	cout << namespaceB::a << endl;


	//namespaceB::namespaceC::Teachar t1;

	using namespace namespaceB::namespaceC;
	Teachar t1;
	t1.age = 20;
	cout << t1.age << endl;

	system("pause");
}

引用

#include <iostream>

using namespace std;

//引用,給變量取別名,已定義變量的別名,很像指針
//引用在c++內部實現是一個常量指針 佔內存 C++編譯器內部處理
void main06()	//06
{
	int a = 10;
	int &b = a;	//引用語法 C++中
				//普通引用必須要初始化
	b = 20;

	cout <<"a:"<< a << endl;
	cout <<"b:"<< b << endl;


	system("pause");
}











//基礎類型的引用
void myswap0(int a, int b)
{
	int temp = 0;
	temp = a;
	a = b;
	b = temp;
}

void myswap1(int &a, int &b)
{
	int temp = 0;
	temp = a;
	a = b;
	b = temp;
}

void main07()
{
	int x, y;
	x = 10;
	y = 20;
	myswap0(x,y);
	cout << "x:" << x << endl;
	cout << "y:" << y << endl;
	cout << endl << endl << endl;
	myswap1(x, y);
	cout << "x:" << x << endl;
	cout << "y:" << y << endl; //可改變形參的值

	system("pause");
}














//複雜數據類型的引用
struct Teacher
{
	char name[64];
	int age;
};

void printfT1(Teacher *pT) //指針
{
	pT->age = 33;
}

void printfT2(Teacher &pT)//引用
{
	pT.age = 44;
}

void main08()	//08
{
	Teacher t1;
	t1.age = 22;

	cout << "修改前t1.age:" << t1.age << endl;
	printfT1(&t1);
	cout << "指針修改t1.age:" << t1.age << endl;
	printfT2(t1);
	cout << "引用修改t1.age:" <<t1.age << endl;

	system("pause");
}

 返回值是引用

#include <iostream> 

using namespace std;

//返回值是一個數值
int getAA0()
{
	static int a = 0;
	//a = 10;
	return a;
}

//返回a變量的本身
//如果是static變量或者全局變量,返回值是變量本身,可以當左值
int& getAA1()
{
	static int a = 0;
	//a = 10;
	return a;
}

int main()
{
	int a1 = getAA1();	//得到數值
	int &a2 = getAA1(); //得到地址
	getAA1() = 100;		//引用可以是左值,可修改a的數值
	int a3 = getAA1();


	cout << "用int類型接收getAA1函數返回值  a1:" << a1 << endl;
	cout << "用引用類型接收getAA1函數返回值 a2:" << a2 << endl;
	cout << "用指針類型接收getAA2函數返回值 a3:" << a3 << endl;

	cout << endl;

	system("pause");

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章