![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初学C++
文章平均质量分 54
金州饿霸
这个作者很懒,什么都没留下…
展开
-
C++ 编译时多态和运行时多态
前言多态多为C++的三大特性之一,我们对此的了解和应用大多停留在类继承层次和运行时阶段。那既然有运行(动态)时阶段,那是否也有静态的多态?有,那就是编译时多态正文动态多态运行时的多态存在于继承类中,通过虚函数实现动态选择调用。简单的说就是通过一张虚函数表——vptable,vptable中记录了基类的虚函数地址,在派生类中继承了基类的这张vptable,而且在派生类的构造函数中对继承来的vptable相关地址进行替换,因此在调用时通过vptable的实际地址能够知道调用哪个函...原创 2021-03-27 10:29:59 · 1386 阅读 · 0 评论 -
C++ 复制构造函数被调用的三种情况
Point类class Point{ public: Point(int xx, int yy){ //构造函数 x = xx; y = yy; } Point(Point &p); //复制构造函数 int getX(){ return x; } int getY() { return y; } private: ...原创 2020-01-06 11:35:12 · 3166 阅读 · 0 评论 -
包含所有c++的头文件的头文件
#include<bits/stdc++.h>#include<bits/stdc++.h>这个头文件包含以下等等C++中包含的所有头文件:#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#inclu...原创 2020-01-03 19:28:25 · 1119 阅读 · 0 评论 -
C++中公有继承、保护继承、私有继承的区别
1 公有继承时基类中各成员属性保持不变,基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。2 私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;...原创 2019-12-29 11:47:41 · 598 阅读 · 0 评论 -
C++中栈和队列的基本操作
使用标准库的栈和队列时,先包含相关的头文件#include<stack>#include<queue>定义栈如下:stack<int> s;定义队列如下:queue<int> q;栈提供了如下的操作:s.empty() 如果栈为空返回true,否则返回false s.size() ...原创 2018-11-15 21:27:23 · 232 阅读 · 0 评论 -
头插法和尾插法建立单链表
/*头插法和尾插法建立单链表*/ #include <iostream>using namespace std;typedef int ElemType;typedef struct LNode { ElemType data;//定义数据域,存放元素值 struct LNode *next; }LinkList; //头插法建表(从尾部一个一个往前插入)v...原创 2018-09-29 20:39:27 · 1327 阅读 · 1 评论 -
PAT (Advanced Level) Practice 1031 Hello World for U (20 分)
1031 Hello World for U (20 分)Given any string of N (≥5) characters, you are asked to form the characters into the shape of U. For example, helloworld can be printed as:h de ll rlowoThat ...原创 2018-10-14 17:42:13 · 106 阅读 · 0 评论 -
C++11 左值、右值、右值引用详解
左值、右值在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b+c, a 就是左值,其有变量名为a,通过&a可以获取该变量的地址;表达式b+c、函数int func()的返回值是右值,在其被赋值给某一变量前,我们不能通过变量名找到它...转载 2018-06-09 14:09:22 · 140 阅读 · 0 评论 -
类中的常成员函数的使用和定义
如果只对对象进行读操作,则该成员函数可以设计成常成员函数。设计成常成员函数的好处是:让使用者一目了然地知道该成员函数不会改变对象的值。常成员函数的声明和定义在形式上必须一致,即在函数形参列表的右括号后面加上const。//---------main.cpp------------ #include <iostream> using namespace std; ...原创 2018-06-16 16:35:01 · 3628 阅读 · 0 评论 -
异常处理
C++的异常处理机制被称为是不可恢复的:一旦异常被处理,程序的执行就不能够在异常被抛出的地方继续。如果这些 catch 子句不包含返回语句,在catch子句完成它的工作之后,程序的执行将在 catch 子句列表的最后子句之后继续进行。1. 抛出异常:throw 表达式(表达式可以是任何类型的对象) 抛出一个类时,可以调用类的构造函数 classname() 抛出类类型的异常步骤: ...原创 2018-06-01 14:52:48 · 148 阅读 · 0 评论 -
数据结构课程设计源码---综合排序
头文件:#include <iostream>//1插入类的排序: //希尔排序:取增量d1的分为一组,共分成d1组分别进行插入排序,然后每组对应元素放在一起,然后取d2...知道d=1 //希尔排序的代码可以近乎看成把1换成dk/*我们简单处理增量序列:增量序列d = {n/2 ,n/4, n/8 .....1} n为要排序数的个数即:先将要排序的一组记录按某个增量d(n...原创 2018-05-31 20:14:29 · 2284 阅读 · 0 评论 -
C++输入/输出流类库
转载地址:http://www.weixueyuan.net/cpp/rumen_9/在C++中,数据从一个对象到另一个对象的传送被抽象为“流”,由它负责在数据的产生者和使用者之间建立联系,并管理数据的流动。在现代操作系统中,一切输入/输出设备,包括键盘、显示器、打印机、网卡、磁盘、声卡等,都被视为广义的文件。在C++中,与这些文件的交互,即数据的输入/输出,是通过包含在C++标准库里的输入/输出...转载 2018-05-30 16:03:25 · 602 阅读 · 0 评论 -
C++深拷贝和浅拷贝
C++中类的拷贝有两种:深拷贝,浅拷贝:当出现类的等号赋值时,即会调用拷贝函数一:两个的区别1 在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的;但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所以,此时,必须采用深拷...原创 2018-05-23 17:37:33 · 1009 阅读 · 2 评论 -
构造一个类的对象的一般顺序
如果该类有直接或者间接的虚基类,则先执行虚基类的构造函数。 如果该类有其他基类,则按照它们在继承声明的列表中出现的次序,分别执行它们的构造函数,但构造过程中,不在执行它们基类的构造函数。 按照在类定义中出现的顺序,对派生类中新增的成员对象进行初始化。对于类类型的成员对象,如果出现在构造函数初始化列表中,则以其中指定的参数执行构造函数。如果未出现,则执行默认构造函数;对于基本数据类型的成员对象,...原创 2018-05-27 17:42:11 · 790 阅读 · 1 评论 -
C++多继承中二义性的解决方案
出现二义性的原因:派生类在访问基类成员函数时,由于基类存在同名的成员函数,导致无法确定访问的是哪个基类的成员函数,因此出现了二义性错误。1. 什么是多重继承的二义性class A{public: void f();} class B{public: void f(); void g();} class C:public A,pub...原创 2018-05-27 15:30:24 · 4758 阅读 · 0 评论 -
公有继承私有继承
//Point.h#ifndef _POINT_H#define _POINT_Hclass Point{ public: void initPoint(float x = 0, float y = 0){ this->x = x; this->y = y; } void move(float offX, float offY){ x += of...原创 2018-05-27 11:58:40 · 251 阅读 · 0 评论 -
构造函数与析构函数
/*构造函数--组合和继承*//*一般来说子类不继承父类的构造函数*/ #include <iostream>using namespace std;class Base1{ public: Base1(int i){ //基类Base1,构造函数有参 cout << "Constructing Base1 " << i <<...原创 2018-05-27 11:53:12 · 172 阅读 · 0 评论 -
C++的多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子...原创 2018-05-26 16:45:15 · 597 阅读 · 0 评论