主题七 最终的胜利----39.进军C++世界

进军C++世界

初始oop

类和对象是面向对象中的两个基本概念

类指的是一类事物,是一个抽象的概念

对象指的是属于某个类的一个实体,是一个具体存在的事物

类是一种模板,可以通过这种模板创建出不同的对象实例

对象实例是类模板的一个具体实现

一个类可以有很多对象,而一个对象必然属于某个类

 

抽象

抽象的意义是观察一群事物,并认识它们所具有的一些共同特征

抽象的本质是忽略不重要的区别,只记录能表现事物特征的关键数据项

类是抽象在程序设计领域的概念

类用于抽象的描述一类事物所特有的属性和行为

对象是一个具体的事物,拥有其所属类的所有属性并且每个属性都是一个特有的值

 

 

封装

类中描述的事物属性和行为往往是相关的

在C++中属性通过变量来表示,行为通过函数来模拟

封装指的是类中的变量只能通过类的函数来访问

 

C++中第一个类的演示

#include <stdio.h>

struct Student
{
    const char* name;
    int number;
    void info()        //C语言中编译不通过,C++扩充了struct
    {
        printf("Name = %s, Number = %d\n", name, number);
    }
};

int main()
{
    Student s;
    
    s.name = "Delphi";
    s.number = 100;
    s.info();
    
    return 0;
}

//g++    test.cpp

思考如何将name和number的访问权限限制到类的函数中

 

 

C++中类的3种访问权限:

  1. Public--类的外部都可以自由的访问
  2. Protected---仅类自身和子类中可以访问
  3. Private--只有类自身中可以访问

#include <stdio.h>

struct Student
{
protected:
    const char* name;
    int number;
public:
    void set(const char* n, int i)
    {
        name = n;
        number = i;
    }
    
    void info()
    {
        printf("Name = %s, Number = %d\n", name, number);
    }
};

int main()
{
    Student s;
    //s.number=10;        //error!main函数不可见
    s.set("Delphi", 100);
    s.info();
    
    return 0;
}

强大的继承

在C++中虽然扩充了struct成为了类,但是一般情况下还是遵循C中的用法

C++一般情况用class来做类的关键字声明

继承是C++代码复用的方式,通过继承,在子类中可以使用父类中的代码

子类可以完全继承父类中的所有变量和函数,在可以使用父类的地方就可以用子类代替

子类从概念而言是一种特殊的父类


小结

面向对象是一种新型的软件开发思想

面向对象将生活中的事物完全映射到程序中

抽象,封装和继承是面向对象程序设计的重要3大特征

继承能够很好的复用已有的类的特性

子类是一种特殊化的父类



你可能感兴趣的:(主题七 最终的胜利----39.进军C++世界)