c++_类和对象

2021-04-04 16:45:58 浏览数 (2)

1.什么是类?

代码语言:javascript复制
类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。

2.什么是对象?

代码语言:javascript复制
类的实例称为对象。

定义类

代码语言:javascript复制
class Cmyclass // 类名
{
	默认为私有成员
public:
	公有成员
private:
	私有成员
protected:
	保护成员
};

1.公有成员: 用public修饰的成员, 具有公有属性 2.私有成员: 用private修饰的成员, 具有私有属性 3.保护成员: 用protected修饰的成员, 具有保护属性

定义对象

代码语言:javascript复制
类名 对象名;
Cmyclass Mushan;

对象成员的访问

代码语言:javascript复制
  1. 通过" . "访问
  Mushan.fun();
  Mushan.age = 10;
  2. 通过" -> "访问
  Mushan*pMushan = new Mushan;
  pMushan->fun();
  pMushan->age = 10;
类中的变量和函数都可以通过用以上两种方式访问(公有属性是前提)

类成员的访问属性

代码语言:javascript复制
1、访问属性修饰关键字
    public 公有属性
    protected 保护属性
    private 私有属性
2、属性解释
    公有属性:类外和类中都可以被直接访问,类外通过对象访问
    保护属性:类中及派生类中可以被直接访问,类外需要通过对象调用接口访问
    私有属性:只有在类中才能被访问,类外需要通过对象调用接口访问
3、类中如果有成员没有被访问属性修饰,默认是私有属性
4、访问属性的修饰范围:从当前访问属性关键字开始到下一个访问属性关键字或者类的结束这一个区
   间,都属于当前访问属性的修饰范围
5、类中访问属性关键字可以在类中的任意位置出现任意次数。
6、如果在类外想访问类中的私有或保护成员,需要在类中提供公有属性的接口,把私有或保护成员通过
   接口来进行操作。

结构体和类的区别

代码语言:javascript复制
1. 在c  中, 结构体和类的区别在于结构体的默认属性是公有属性, 二类的默认属性是私有属性
2. 在C语言中, c语言是纯面向过程编程语言, 没有类, 结构体不存在函数成员但有方法实现
(附参考链接:https://blog.csdn.net/weibo1230123/article/details/81532318)

类的基本使用范例

代码语言:javascript复制
#include
using namespace std;

// class 类这种自定义结构的关键字
class CMyStu
{
	// 类中未定义访问属性, 默认为私有(结构体中默认为公有)
	int id;
	int age;
	char name[128];
	char sex;
public:  // 公有属性 (类中的数据如果是公有属性, 在类中和类外都可以被对象直接访问)
	void setId(int i) { id = i; };
	void setAge(int a) { age = a; };
	int getId() { return id; }
	int getAge() { return age;  }
};

int main()
{
	CMyStu student;
	student.id = 10; // 错误代码,id为CMyStu类中的私有成员,不能直接访问
	// 此时需要设置一个公有成员函数作为接口来访问私有成员
	student.setAge(10);
	cout << student.getAge(); // 输出结果: 10
	return 0;
}

0 人点赞