C++学习笔记.2

类和对象

封装

语法:

class 关键字{

访问权限

属性

行为

}

#include
using namespace std;
const double pi = 3.14;
//设计一个圆类
class circle {
	//访问权限
	// 公共权限
public:
	//属性
	int r;
	//行为
	double c()
	{
		return 2 * pi * r;
	}
};
int main()
{
	//通过圆类 创建具体的圆(对象)
	circle c1;
	c1.r = 10;
	cout << "圆的周长为:" << c1.c() << endl;
	system("pause");
	return 0;
}

设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号

#include
#include
using namespace std;
class student {
	//访问权限
	// 公共权限
public:
	//属性
	string name;
	int number;
	//行为
	void print()
	{
		cout << "name"<> a.name ;
		cin >> a.number;
		 a.print();
	}
	system("pause");
	return 0;
}

类中的属性和行为 我们统一称为 成员

属性又叫成员属性或成员变量

类中的行为我们又叫 成员函数或成员方法

默认情况下,c++编译器至少给一个类添加3个函数

访问权限:

public: 公共权限   //成员在类内可以访问 类外也可以访问

protected:保护权限  // 类内可以访问 类外不可以访问

private:私有权限  //类内可以访问 类外不可以访问

C++学习笔记.2_第1张图片

struct和class的区别:

struct默认权限为公共public

class默认权限为私有 private

成员属性设置为私有

优点1:将所有成员属性设置为私有,可以自己控制读写权限

class people {
public:
	//设置姓名
	void setname(string me)
	{
		name = me;
	}
	//获取姓名
	string getname()
	{
		return name;
	}
	int getage()
	{
		return age;
	}
	int setido(string id)
	{
		ido = id;
	}
private:
	string name;//可读可写
	int age=18;//只读
	string ido;//只写
};

优点2:对手写权限,我们可以检测数据的有效性

void setage(int ag)
	{
		if (ag < 0 || ag>150)
		{
			cout << "年龄输入有误" << endl;
			return;
		}
		age = ag;
	}

对象的初始化和清理

构造函数语法:

类名(){}

(1)构造函数,没有返回值也不写void

(2)函数名称与类名相同

(3)构造函数可以有参数,所以可以发生函数重载

(4)程序在调用对象时候会自动调用构造,无需手动调用,而且只会调用一次

class person {
public:
	person()
	{
		cout << "构造函数的调用" << endl;
	}
};
void test()
{
	person p;
}

析构函数语法:

~类名(){}

(1)构造函数,没有返回值也不写void

(2)函数名称与类名相同

(3)构造函数没有参数,所以不可以发生函数重载

(4)对象在销毁前,会自动调用析构函数,而且只会调用一次

class person {
public:
	~person()
	{
		cout << "xi构造函数的调用" << endl;
	}
};
void test()
{
	person p;//栈上的数据 test执行完毕后,释放这个对象
}

构造和析构都必须有的实现,如

你可能感兴趣的:(C++,c++,学习,笔记)