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");

}

猜你喜欢

转载自blog.csdn.net/qq_36795563/article/details/81229029