C++类&对象

类:是面向对象程序设计的基础

抽象数据类型(ADT):仅关注其逻辑特性,将其实现细节推迟到以后完成

  • 抽象数据类型操作的类别:
    • 1.构造函数:
    • 2.转换函数:
    • 3.观察函数:
    • 4.析构函数:
    • 5.迭代函数:

C++类:

  • 1.类成员:类的组成项,既可以是数据,也可是函数;
  • 2.类声明:
			class 类型名{
				访问修饰符:成员列表
							.
							.
							.
			}变量列表;
  • 访问修饰符:
    • 1.其是两个关键字之一:public 和 private;
    • 2.public之后的数据和函数构成了公共接口,客户端可以直接访问(任何声明和处理类对象的软件都成为这个类的客户端)
    • 3.private之后声明的类成员可看做是私有信息,客户端不能访问
    • 4.C++无需按照固定顺序声明公共和私有类成员
    • 5.默认情况下,类成员是私有的
    • 6.结构体与类之间的区别:
      • C++将结构体定义为所有成员(默认)均为公共成员的类,而类的成员在默认情况下都是私有的类,对象和成员:
        • 1.类是一种类型,而不是一个对象;
        • 2.而由类创建出的具体数据值才是对象;
        • 3.实力化类已生成一个对象,对象是类的一个实例;
  • 构造函数:
    1.类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
    2.构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。
    3.构造函数可用于为某些成员变量设置初始值。

类定义

  • 定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。
  • 类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例如,我们使用关键字 class 定义 Box 数据类型,如下所示:
class Box
{
   public:
      double length;   // 盒子的长度
      double breadth;  // 盒子的宽度
      double height;   // 盒子的高度
};

关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 private 或 protected

实例:
#include<iostream>
#include<string>
using namespace std;


class preson {
public:
	string name;
	int age;
	//成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义
	void Add_1(int age1) {
		age1++;
		cout << "age1 = " << age1 << endl;
	}
	preson();	//声明构造函数
};
//构造函数
preson::preson() {
	age = 0;
}
int main() {
	preson a, b;   //person可以被用来定义新的person类型的变量,声明了a,b两个类对象
	a.name = "tom";
	b.name = "jim";
	cout << "a name is " << a.name << endl;
	cout << "b name is " << b.name << endl;
	a.age = 18;
	a.Add_1(a.age);	//该函数不会改变a.age的值
	cout << "tom age is " << a.age << endl;
	system("pause");
	return 0;
}
/*
	信息隐藏:
			实施细节的封装和隐藏,使抽象对象的用户不用依赖这些细节,也不会错误的操作这些细节
	抽象屏障:
			对象周围的一堵不可见的墙,其封装了实现细节;这堵墙只能通过公共借口来突破
	用户编写头文件:
					当一个数据类型可在多个程序中用到,可将其放在一个单独的文件中(头文件),利用#include指令将文件内容插入到程序中
					1.若将头文件的名字放在尖括号中,预处理命令会在标准include目录中查找该文件,这个标准目录包含了C++系统提供的所有头文件
					2.若将头文件的名字放在双括号内,预处理命令则会在当前目录中查找该文件
	规格说明文件:
	
	实现文件:
*/

#include<iostream>
#include"months.h"
using namespace std;
int main() {
	Months A = MAY;
	Month C;
	C.JAN = "星期一";
	int B = A;
	cout << B << endl;
	output_month(C.JAN);
	system("pause");
	return 0;
}
发布了79 篇原创文章 · 获赞 82 · 访问量 8745

猜你喜欢

转载自blog.csdn.net/fangweijiex/article/details/104211497