C++高级知识
MetalGear2077
一个学生
展开
-
C++ 继承: 父类与子类构造函数与析构函数的关系
C++ 继承: 父类与子类构造函数与析构函数的关系一句话:调用子类构造函数时,父类的先调用,然后调用子类的构造函数。调用子类的析构函数时,先调用子类的析构函数,然后调用父类的析构函数。例:点类,点派生的圆类Circle.h#ifndef CIRCLE_H_INCLUDED#define CIRCLE_H_INCLUDED#include "Point.h"class Circle : public Point{public: Circle(); Circle(int x原创 2021-06-05 16:08:24 · 882 阅读 · 0 评论 -
C++ 深拷贝与浅拷贝
C++ 深拷贝与浅拷贝浅拷贝:简单的赋值拷贝操作,浅拷贝问题是堆区的内存重复释放,构造函数运行一次,析构函数执行两次,导致报错 深拷贝: 在堆区重新申请空间,进行拷贝操作,构造函数运行两次,析构函数执行两次,这样不会重复释放一块地址的内存。如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,然后用深拷贝,防止浅拷贝带来的问题#include <iostream>using namespace std;class Person {public: //构造函数 P原创 2021-04-23 10:03:21 · 84 阅读 · 1 评论 -
C++ 多态 虚函数与纯虚函数
C++ 多态 虚函数与纯虚函数虚函数是C++重要思想-多态中不可或缺的一个知识点与用法,但初学者一般很难理解,在这里用通俗语言介绍一下。百度百科:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。虚函数:在基类的函数前面加上virtual关键词,表明是虚函数,实际的实现(函数重写)要按照子类中的方式。如大家都喜欢养宠原创 2021-04-23 09:54:39 · 185 阅读 · 1 评论