C++精髓 类

定义: class + 类名

class student
{
public :
    char var;
    void function();
private:
   char value;
  
};

对象

通过类定义出来的变量就是对象,对象就是类的实例化。

1.直接定义的对象

student my;  //  student 就是类   my就是对象

2.在堆里面定义对象

student *my1 =new student;

删除对象(只能删除堆里面的对象)
删除对象的意义:释放堆里面的内存

delete my1;

访问对象

普通变量通过.来访问;指针通过->

my.var
my1->var

类的函数成员

因为类里面的成员不仅可以是变量,也可以是函数。
第一步:在类里面声明
第二步:实现这个函数。我们可以在类的里面写,也可以在类的外面。

1.直接写在类的里面

class student
{
public:
   char var;
   void function()
   {
    cout<<7<<endl;
   };

};

2.写在类的外面

class student
{
public:
   char var;
   void function();
};

void student::function()
{
cout<<7<<endl;
}

注:访问类里的函数和访问变量是一样的

类的访问修饰符

类的访问修饰符就是对类的成员进行权限管理。
public:表示函数和变量是公开的,任何人对可访问;
private:表示函数和变量只能在自己的类里面自己访问自己。不能通过对象来访问。

my.value  //  是不能访问的

可通过类里函数进行访问private定义的变量。

void function()
{
my.value=7;
};

protected:表示函数和变量只能在自己的类里面自己访问自己,但可以在派声类来访问的。

类函数重载特性

类函数的重载特性就是我们可以在类里面 定义同名的函数,但是参数不同的函数。

class student
{
public :
    char var;
    void function();
    void function(int q);  // 重载函数
private:
   char value;
  
};

重载函数在调用时,会根据参数的类型,然后区匹配相应的函数去调用。

构造函数和析构函数

析构函数:假如我们定义了析构函数,当对象被删除或者声明周期结束时,就会触发析构函数。
构造函数:假如我们定义了构造函数,就会触发这个构造函数

定义构造函数和析构函数:
1.构造函数和析构函数的名字必须和类名一模一样。
2.析构函数要在前面加上一个~

class student
{
public :
    student(); // 在对象被创建时,才会触发构造函数
    ~student(); //对象被删除或生命周期结束时,才会触发析构函数 
    char var;
    void function();
private:
   char value;
  
};
void student::student() // 在对象被创建时,才会触发构造函数
{
cout<<"q" <<endl;
}
void student::~student() //对象被删除或生命周期结束时,才会触发析构函数 
{
cout<<"88" <<endl;
}

构造函数可以被重载,析构函数不能被重载。
注:只能重载在堆里面定义的对象。

类的继承

类的继承允许我们在新类里面继承父类的public和protected部分,private是不能被继承的。
当我们觉得这个类不好的时候,是可以使用类继承,添加我们需要的功能。

class mystudent:public student
{
public:
  int age;
}

访问方式相同

class student
{
public :
    char var;
    void function();
    void function(int q);  // 重载函数
private:
   char value;
  
};
class mystudent:public student
{
public:
  int age;
};
int main()
{
student my;
mystudent my2;

my2.age=7;


}

虚函数和纯虚函数

虚函数:有实际定义的,允许派生类对他进行覆盖式的替换,virtual来修饰。
纯虚函数:没有实际定义的虚函数就是纯墟函数。
用virtual来修饰,虚函数是用在类的继承上的

class student
{
public :
    char var;
    void function();
    void function(int q);  // 重载函数
    virtual void function1(); // 虚函数
    virtual void function2(){} //纯虚函数
private:
   char value;
  
};

class mystudent:public student
{
public:
  int age;
  void function1()
  {
  cout<< 8 <<endl;
  }
};
void student::function1()
{
cout<< 7 <<endl;
}

// 引用虚函数
mystudent my2;
my2.function1(); // 结果8 派生类对父类的虚函数进行覆盖式的替换

优点:便于分工式开发

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页