• C++的使用


    类与对象

    1. class People {
    2. public:
    3. //成员变量
    4. char name[20];
    5. int age;
    6. //成员函数
    7. char *getName();
    8. int getAge();
    9. //构造函数
    10. People();
    11. People(int age);
    12. People(int age,char name[]);
    13. //复制构造函数
    14. People(People &people);
    15. //析构函数
    16. ~People();
    17. };
    1. #include "People.h"
    2. int People::getAge() {
    3. return age;
    4. }
    5. char *People::getName() {
    6. return name;
    7. }
    8. int main(){
    9. People people;
    10. people.getName();
    11. People *p;
    12. p=people;
    13. p->getName();
    14. People people1(20);
    15. People people2(30,"abc");
    16. }
    17. People::People(){
    18. }
    19. People::People(int age) {
    20. this->age = age;
    21. }
    22. //构造函数:在创建对象时,进行初始化
    23. People::People(int age, char *name) {
    24. this->age = age;
    25. this->name = name;
    26. }
    27. //复制构造函数:对象备份
    28. People::People(People &people) {
    29. age = people.age;
    30. name = people.name;
    31. }
    32. //析构函数 一个类只能有一个析构函数,并且不能重载,在回收对象时,对资源进行回收
    33. People::~People(){
    34. age = 0;
    35. name = NULL;
    36. }

    2.友元

    当用户希望另一个类能够访问当前类的私有成员时,可以在当前类中将 另一个类作为自己的友元类,这样在另一个类中就可以访问当前类的 私有成员了

    通过friend关键字,暴露protect和private的属性,供其他无法访问的类访问

    1. char *getHome(People &people);
    2. 对应的是
    3. char *People::getHome(People &people) {
    4. return people.home;
    5. }
    6. friend char *getHome(People &people);
    7. 对应的是
    8. char *getHome(People &people) {
    9. return people.home;
    10. }
    1. 声明友元类
    2. friend class Person;
    3. 声明友元函数
    4. friend char *getHome(People &people);

    命名空间

    命名空间就是一个命名的范围区域,程序员在这个特 定的范围内创建的所有标识符都是唯一的

    关键字namespace 

    1. namespace name1{
    2. char name[] = "wang";
    3. }
    4. namespace name2{
    5. char name[] = "long";
    6. }

    使用:

    1. using namespace name1;
    2. 或 name1::name;

    继承

    继承方式有3种派生类型,分别为公有(public)型、保护 ( protected ) 型 和 私 有 ( private ) 型

    class People : public Person{

    公有型派生表示对于基类中的public数据成员和成员函数,在派 生类中仍然是public;对于基类中的private数据成员和成员函数,在 派生类中仍然是private

    私有型派生表示对于基类中的public、protected数据成员和成员 函数,在派生类中可以访问。基类中的private数据成员,在派生类中 不可以访问

    保护型派生表示对于基类中的public、protected数据成员和成员 函数,在派生类中均为protected。protected类型在派生类的定义时 可以访问,用派生类声明的对象不可以访问,也就是说在类体外不可 以访问。protected成员可以被基类的所有派生类使用,这一性质可以 沿继承树无限向下传播。

    当从父类派生一个子类并声明一个子类的对象时,它将先 调用父类的构造函数,然后调用当前类的构造函数来创建对象;在释 放子类对象时,先调用的是当前类的析构函数,然后是父类的析构函 数

    多重继承中的基类构造函数 被调用的顺序以类派生表中声明的顺序为准。派生表就是多重继承定 义中继承方式后面的内容,调用顺序就是按照基类名标识符的前后顺 序进行的

    虚函数允许在派生类中重新 定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和 派生类中的同名函数。关键字 virtual  

    覆盖和重载的区别是,重载是同一层次函数名相同,覆盖是在继 承层次中成员函数的函数原型完全相同。

    包含有纯虚函数的类称为抽象类,一个抽象类至少具有一个纯虚 函数。纯虚函数(pure virtual function)是指被标明为不具体实现的 虚成员函数,它不具备函数的功能

    虚函数:允许子类重写

    纯虚函数:没有实现的函数 ,子类必须实现

    virtual char* getName() = 0;

  • 相关阅读:
    二.maven常用功能点
    Codeforces Round #833 (Div. 2) B. Diverse Substrings
    sealos 与其它流行产品的差异与联系
    微信小程序如何利用接口返回经纬计算实际位置并且进行导航功能【下】
    java毕业设计健身俱乐部管理系统(附源码、数据库)
    JS提升:手写发布订阅者模式(小白篇)
    【Flowable】FlowableUI使用以及在IDEA使用flowable插件(二)
    用python实现操作mongodb的插入和查找操作
    13-bean创建流程4-反射创建bean
    04-分布式事务解决方案之最大努力通知实战
  • 原文地址:https://blog.csdn.net/xiaowang_lj/article/details/126586764