C语言Plus 2020-05-01

前言

类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。

有些教程将类的成员变量称为类的属性(Property),将类的成员函数称为类的方法(Method)。在面向对象的编程语言中,经常把函数(Function)称为方法(Method)。

与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。

类的定义

类和C语言里的结构体唯一不同的就是,类里面除了可以写变量之外还可以,可以写函数。咱们通过代码来了解一下:

#include<iostream>using namespace std;struct TestC //C语言结构体{  int age;  char name[15];};void InitC(struct TestC *temp,int fage, const char *fname){//在函数里面改变变量的值,需要传入指针哦  temp->age = fage;  strcpy(temp->name, fname);}void ShowInfo(struct TestC temp){  printf("我是%s,今年%d岁了~\n", temp.name,temp.age);}struct TestCPP //C++类{  int age;  char name[15];  void InitCpp(int fage,const char *fname){    age = fage;    strcpy(name, fname);  }  void ShowInfo(){    cout << "我是" << name << "今年" << age << "岁了~" << endl;  }};int main() {  struct TestC *Tc=(struct TestC*)malloc(sizeof(struct TestC));  InitC(Tc, 23, "maye");  ShowInfo(*Tc);
 TestCPP TCPP;  TCPP.InitCpp(18, "C语言Plus");  TCPP.ShowInfo();
 while (1);  return 0;}

可以看到C语言定义好了结构体,如果想写一个函数对里面的所有数据进行初始化,那么你就得在下面写一个函数,还要指定初始化的结构体变量。

那么在C++里我们可以把这个初始化数据的函数放到结构体里面(一般叫类),调用函数的方式和结构体使用成员的方式一样。很好理解吧!


在C++里,除了使用struct关键字定义类外,还新增了class关键字,专门用来定义类,直接把struct替换为class就可以了。

TestCPP是类的名称;类名的首字母一般大写,以和其他的标识符区分开。{ }内部是类所包含的成员变量和成员函数,它们统称为类的成员(Member);由{ }包围起来的部分有时也称为类体,和函数体的概念类似。

类的成员类型

类成员可以被定义为 public(公有)、private(私有) 或 protected(保护)。默认情况下是定义为 private。

什么意思呢?还是通过代码来了解,俗话说得好,实践是检验真理的唯一标准!

#include<iostream>using namespace std;
struct Student //C++类{private:  int age;protected:  char name[15];public:  int score;  void init(){    age = 18;    strcpy(name, "C语言Plus");    score = 88;  }};int main() {  Student stu;  stu.init();  stu.age;  stu.name;  stu.score;
 while (1);  return 0;}


C++的类是什么_c++

可以看到除了public成员,其他两种在类的外面是没有办法访问的,这就是这个作用,具体的咱们在后面详细了解。