【**C/C++**】
六碗铁biu_
这个作者很懒,什么都没留下…
展开
-
vim的基本使用方法
头记:vim作为被大多数程序员所推崇的编辑器,是源于它的自由灵活以及令人舒服的输入模式,但对于新手来说无疑是个噩梦(需要记太多的命令),而作为使用了vim有一段时间的我来说,总结下常用的命令,以备新手快速进入vim,感受它的强大以及令人着迷的处理方式。以下只介绍常用的使用方式,对于繁重的概念以及高难度的操作留待大家以后的兴趣去探索。初次用vi/vim打开文件既可以使用以下命令:移动命令:1.hjk...转载 2018-05-09 10:25:53 · 148 阅读 · 0 评论 -
获取时间戳(毫秒级别)
第一种:#include <chrono>std::string getCurrentTime(){ auto timeNow = chrono::duration_cast<chrono::milliseconds>( chrono::system_clock::now().time_since_epoch() ); char bufTime[1...原创 2019-01-23 19:37:44 · 2953 阅读 · 0 评论 -
c++编译报错:invalid use of incomplete type struct (或class)
出现错误的情况:class A :定义在A.h实现在A.cpp由于要使用A类里的方法,在B.h中声明了 class A;原因:编译器找不到A的具体实现解决:在B.cpp中 include A.h ...原创 2019-01-23 19:10:29 · 19280 阅读 · 0 评论 -
sort()函数 ----排序
需求:验证sort()函数对拼音排序效果。QT环境源码#include <QCoreApplication>#include <iostream>#include <stdio.h>#include <stdlib.h>#include <list>#include <algorithm>class us...原创 2018-10-23 17:32:08 · 265 阅读 · 0 评论 -
类设计总结
1.编译器生成的成员函数 (1)默认构造函数没有参数/所有参数都有默认值。a.能调用基类的默认构造函数.b.调用本身是对象的默认构造函数。 (2)构造函数不被继承。 (3)友元函数不能被继承。因为不是类成员。 (3)基类应提供一个虚析构函数。 (4)explicit禁止隐式转换。2.值传递 引用传递 (1)对象作为参数时,用引用传递。 ...原创 2018-06-01 16:09:57 · 163 阅读 · 0 评论 -
抽象基类(ABC)
1.定义一个ABC类。2.包含A和B共有的所有方法和数据成员。3.在A/B中行为不同的方法,被声明为虚函数。4.至少一个纯虚函数,这样才能成为ABC。 ABC描述的是至少使用一个纯虚函数接口,从ABC派生的类将根据其特征,实现接口。 class AccABC{ private:intm_a;longm_b; protected:intget_a(){return a;} public:AccA...原创 2018-06-01 16:10:14 · 233 阅读 · 0 评论 -
protected
protected:与private相似: 类外只能用公有成员访问protected成员。区别:在子类中体现,子类成员可访问基类protected成员,但不能访问private成员。原创 2018-05-31 17:57:07 · 4461 阅读 · 0 评论 -
静态联编和动态联编
静态联编和动态联编函数联编:编译器将源码中的函数调用解释为执行特定的函数代码块。但C++中由于重载,出函数名以外还要判断参数和类型。 静态联编:在编译过程中进行联编。 动态联编:由于使用虚函数,编译时不能确定用户选择哪种类型的对象。所以,编译器必须生成能在运行时选择正确虚方法的代码,即动态联编。 虚函数的工作原理:Class A{ charname[40];public:virtualvoid t...原创 2018-05-31 17:55:34 · 160 阅读 · 0 评论 -
类继承与派生
继承: 1.在已有类的基础上添加功能。2.添加数据。在派生类中添加指定字符。3.修改类方法的行为。派生:Class A{public:A(inta1,int a2);void Fun_A();void Test(const A &a); Private: int m_a1;intm_a2; } Class B:public A{ public:B();B(intb...原创 2018-05-31 17:53:04 · 165 阅读 · 0 评论 -
虚函数
C++中的虚函数就是用来解决这个问题的。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 请分析例12.2。这个例子开始时没有使用虚函数,然后再讨论使用虚函数的情况。 [例12.2] 基类与派生类中有同名函数。在下面的程序中Student是基类,Graduate是派生类,它们都有display这个同名的函数 来自 <http:/...原创 2018-05-31 10:39:36 · 205 阅读 · 0 评论 -
成员初始化列表
语法:Queue::Queue(int qs) :qsize(qs),font(NULL){ }将qsize的值初始化为qs... 1.只有构造函数能这么使用。2.必须使用的情况: a.非静态const 类成员。 b.被声明为引用的类成员。 ...原创 2018-05-31 10:38:44 · 298 阅读 · 0 评论 -
构造函数
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。Eg:Stock () {num = 0;}Stock (int n = 0){num = n}; 在构造函数中new(new [])分配内存,则析构函数中必须使用delete(delete[])释放。若有多个构造函数,必须均与析构函...原创 2018-05-31 10:37:26 · 149 阅读 · 0 评论 -
重载赋值运算符
StringBad class2("abc");StringBad class1 = class2; 出现语句2赋值过程有两种:1.调用拷贝构造函数。2.创建临时对象,通过赋值,将临时对象的值赋给新对象。 情况2:需要编写赋值运算符StringBad & StringBad::operator=(const StringBad & st){if(this == &st)...原创 2018-05-31 10:35:55 · 500 阅读 · 0 评论 -
拷贝构造函数
1.默认拷贝构造函数执行顺序:先父类 后子类。2.对类中每一个data member执行成员拷贝。3.若data membeer为某一个class的实例,调用此类的拷贝构造函数。4.若data member是一个数组,对数组的每一个执行按位拷贝。5.若datamember是int,double,那么调用系统内建的复制运算符对其进行赋值。 拷贝构造函数 调用情况:1.一个对象作为函数参数,以值传递形...原创 2018-05-31 10:34:26 · 150 阅读 · 0 评论 -
static详解
1、什么是static?static是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static?函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许...转载 2018-05-31 10:32:00 · 471 阅读 · 0 评论 -
Va_可变参数列表相关使用
一般接触的代码参数个数为固定值,但遇到函数参数的个数不固定时,就需要用到可变参数列表的功能。函数定义如下** Variable argument list macro definitions*/#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))#define va_arg(ap, T) (*(T *)(((ap) += ...原创 2018-05-08 13:51:51 · 163 阅读 · 0 评论 -
智能指针
shared_ptr(本质是类,表现像指针)多个指针指向相同对象。每使用一次,内部计数加1;析构一次,减1,减为0时,自动删除指向的堆内存。make_shared 初始化指针。计数器递增:(1)当用一个shared_ptr初始化另外一个shared_ptr(2)将它作为参数传递给另外一个函数(3)作为函数的返回值计数器递减:(1)给share_ptr...原创 2019-06-06 10:18:19 · 111 阅读 · 0 评论