无需下载的网站,乡镇医院网站建设,排版网页,wordpress建站的教程文章目录前言面向过程编程面向对象编程什么是类类和结构体有什么区别三个访问说明符如何创建一个类类的声明创建类申明和定义全部放在类中声明和定义分离前言
从这里我们正式开始学习c中的面向对象编程#xff0c;在学习之前#xff0c;我们有必要了解一下什么是面向对象编程…
文章目录前言面向过程编程面向对象编程什么是类类和结构体有什么区别三个访问说明符如何创建一个类类的声明创建类申明和定义全部放在类中声明和定义分离前言
从这里我们正式开始学习c中的面向对象编程在学习之前我们有必要了解一下什么是面向对象编程以及与面向过程编程的区别。
面向过程编程 Q什么是面向过程编程 A面向过程编程就是分析出解决问题所需要的步骤然后用函数把这些步骤一步一步的实现使用的时候一个一个的调用。
面向对象编程
Q什么是面向对象编程
面向对象是把构成问题事务分解成各个对象建立对象的目的不是为了完成一个步骤而是为了描叙某个事物在整个解决问题的步骤中的行为。
举个例子比如设计一个踢足球的系统
面向过程关注于实现踢足球中传球带球射门这些过程。用函数一个一个表达。
面向对象关注于实现类对象及类对象间的关系球球员以及他们之间的关系。
什么是类 Q什么是类 A类是将同类对象的共同属性和行为抽象出来形成的一个相对复杂的数据类型, 这与结构体一样都是为了描述一个相对复杂的对象。
类和结构体有什么区别 c类是C对于C语言中的结构体的延伸 类相比与结构体它可以将函数作为成员一般在类中声明把函数体放在类外实现。 结构体和类都可以被访问对象名 . 成员名 / 对象指针 - 成员名, 但区别是类中可以使用三个访问说明符用来设定访问权限。
三个访问说明符
c类中有三个访问说明符分别是publicprivateprotected下面我们来了解一下他们具体的作用。
public定义在public说明符之后的成员在整个程序内可被访问。private定义在private说明符之后的成员可以被类的成员函数访问但是不能被类的对象访问。定义在protected说明符之后的成员可以被派生类的成员函数访问不能被类的对象访问。
如何创建一个类
类的声明
在创建类之前我们先来学会如何声明一个类。在c中声明一个类和声明一个结构体类似。 下面是一段声明结构体的代码
struct Student {//声明了一个名为Student的结构体类型 int num; char name[20]; char sex;
};
Student stu; //定义了结构体变量stu下面是一段声明类的代码
class Student {//以class开头int num; char name[20]; char sex;//以上3行是数据成员 void display() {//这是成员函数 cout ″num:″ num endl;cout ″name:″ name endl; cout ″sex:″ sex endl; }
}
Student stu; //定义了结构体变量stu
可以看到声明类的方法和声明结构体类型的方法类似。不同点在于类是一种广义的数据类型这种数据类型中的数据既可以包含数据也可以包含操作数据的函数。
创建类
类的创建一般有两种方法
申明和定义全部放在类中声明和定义分离
举个最简单的例子我们创建一个狗狗类
申明和定义全部放在类中
#include iostream
#includestring.h
using namespace std;
class Dog {public://成员函数void set(char n[20], int a) {//实现setPoint函数strcpy(name,n);age a;}void print() {//实现printPoint函数cout name: name endl;cout age: age endl;}private://成员变量char name[20];int age;
};int main() {Dog dog; //用定义好的类创建一个对象 dog.set(旺财, 2); //设置狗狗姓名年龄 dog.print(); //输出狗狗的信息return 0;
}在这个程序中申明和定义全部放在类中如果类里的成员函数很多的话阅读起来就会乱很多。
声明和定义分离
#include iostream
#includestring.h
using namespace std;
class Dog {public://成员函数void set(char n[20], int a);void print();private://成员变量char name[20];int age;
};void Dog::set(char n[20], int a) {//实现setPoint函数strcpy(name,n);age a;
}void Dog::print() {//实现printPoint函数cout name: name endl;cout age: age endl;
}int main() {Dog dog; //用定义好的类创建一个对象 dog.set(旺财, 2); //设置狗狗姓名年龄 dog.print(); //输出狗狗的信息return 0;
}在这个程序中声明和定义分离就是成员函数仅在类内声明函数原型在类外定义函数这样在类里就可以看到所有的成员函数看不见实现的过程相比起来精简很多。
注意声明和定义分离创建类的时候需要使用作用域解析运算符::来标识函数所属的类。