jiang

工具就是生产力


  • 首页

  • 分类

  • 归档

  • 标签

  • 相册

  • 关于

  • 搜索

纯虚函数

发表于 2019-12-21 | 分类于 C++ |
C++允许为纯虚函数提供默认实现。 Q1:含默认实现的纯虚函数成员的基类(非派生类)能否实例化对象? A:在VS2017中无法编译通过,对此一个合理的解释是:编译器不去检查含纯虚函数的非派生类是否提供了默认实现。含纯虚函数的非派生类唯一使用方式是被继承。
阅读全文 »

C++之对象内存模型

发表于 2019-12-21 | 分类于 C++ |
对象内存大小首先确定类的构成:1) 数据成员:内置类型,类类型2) 函数成员:虚函数、非虚函数 1)数据成员内置类型大小,字节为单位 123456char 1 short 2 int 4 long 4 float 4 double 8 主要有3条规则: 结构体内的成员的首地址相对于结构体首 ...
阅读全文 »

C++之内存类型

发表于 2019-12-21 | 分类于 C++ |
一个由C/C++编译的程序占用的内存根据其用途和操作方式分为以下几个部分 栈区(stack)程序运行时由系统自动分配,存放函数的参数值,局部变量(自动变量)的值等。其操作方式类似于数据结构中的栈。程序结束后由系统释放 由系统自动分配, 速度较快, 程序员无法控制这部分内存分配 只要栈的剩余空间大于 ...
阅读全文 »

ofstream

发表于 2019-12-21 | 分类于 C++ |
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app:   以追加的方式打开文件 ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文 ...
阅读全文 »

static关键字

发表于 2019-12-21 | 分类于 C++ |
local static变量 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将只在执行线程第一次到达它的定义使初始化。 构造函数是在控制线程第一次通过该对象的定义时调用。在程序结束时,局部静态对象的析构函数将按照他们被构造 ...
阅读全文 »

指针兼容性

发表于 2019-12-21 | 分类于 其它 |
指指向基类和派生类的指针之间的兼容性。 指向基类的指针或引用可以引用派生类对象,而不必进行显示类型 123BrassPlus dilly("Annie Dill", 493222, 2000);Brass * pb = &dilly; // okBrass & r ...
阅读全文 »

数组名、引用与指针区别

发表于 2019-12-21 | 分类于 C++ |
数组名与指针区别举例 12char a[10];char *p; 数组名具有常量性,相当于T* const 数组名作为函数参数时,常量性被摘除,与普通指针相同 数组名不是变量,不能做左值,因此不能自增自减之类操作 sizeof(数组名) 得到数组大小,sizeof(指针) 得到指针大小 & ...
阅读全文 »

C++之深浅拷贝

发表于 2019-12-21 | 分类于 C++ |
C++在拷贝对象时默认做的浅拷贝。所谓浅拷贝,完成数据成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的;但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,这会产生两个问题: 一个类对象释放了其指针指向的数据后,导致也指向这块数据的指针成为野指针(指针悬挂),产 ...
阅读全文 »

C++之派生类与基类的同名函数调用情况

发表于 2019-12-21 | 分类于 C++ |
注意:这里仅讨论同名函数为非虚函数情况 1 先看 非同名函数 调用情况此种情况最简单,结论是可通过子类直接调用自己没有的父类函数。 12345678910111213141516171819class Base{public: void print() { ...
阅读全文 »

C++智能指针

发表于 2019-12-21 | 分类于 C++ |

本文介绍C++的四个智能指针: auto_ptr, unique_ptr, shared_ptr, weak_ptr 其中后三个是c++11支持,并且第一个已经被C++11弃用。
智能指针和普通指针的区别在于智能指针实际上是对普通指针加了一层封装机制,这样的一层封装机制的目的是为了使得智能指针可以方便的管理一个对象的生命期。

阅读全文 »
1…456

56 日志
19 分类
21 标签
GitHub E-Mail
© 2026 Jiang.G.F
0%