![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 80
smile_zhangwj
这个作者很懒,什么都没留下…
展开
-
C++基础知识
这里简单介绍下命名空间,输入输出流,重载,C++缺省参数,引用的概念、使用方法以及引用和指针的区别命名空间 以关键字namespace开始,其后接命名空间的名字,命名空间的名字在其所在作用域中是唯一的,命名控件可以在全局作用域或者其它作用域内部定义,但是不能在函数或者类的内部定义。 namespace namespace_name { //dec原创 2017-10-07 18:06:57 · 292 阅读 · 0 评论 -
重载、重写、重定义
重载 在同一作用域类,一组函数的函数名相同,参数列表不同(个数不同/类型不同),返回值可同可不同 重定义(隐藏) 子类与父类同名的成员(成员函数或成员变量) 如果一个类,存在父类相同的函数,那么,这个类将会覆盖其父类的方法,除非你在调用的时候,强制转换为父类类型,否则试图对子类和父类做类似重载的调用是不能成功的。 重写 (覆盖) 在多态机制...原创 2018-08-01 16:40:00 · 155 阅读 · 0 评论 -
static、const和关键字volatile
staticstatic修饰变量&修饰函数 在介绍static之前,先看下static修饰全局变量和局部变量的题。#include<iostream>using namespace std;static int m;void fun1(){ static int n = 0; n++; printf("n = %d\n",n);} ...原创 2018-07-16 11:03:47 · 798 阅读 · 0 评论 -
二维数组动态开辟与传参
这里简单介绍动态二维数组的开辟与释放,以及二维数组传参的几种方法动态二维数组的开辟与释放 方法1:直接开辟一维数组 eg: int *p = new int[10*10];//当成一维数组进行开辟 访问数据的方式 :通过a[i*10+j] 来访问第(i*10+j)个数据。 优缺点:访问数...原创 2018-04-19 15:02:50 · 434 阅读 · 0 评论 -
强制类型转换
C语言强制类型转换1.隐式类型转换 eg:顺序表中在某个位置插入一个数 size_t pos; for(int i=n-1; i>=pos; i--) {} 注:i>=pos中,会发生隐式类型的转换,如果pos=0时,导致死循环。 应该为:i>=(int)pos将pos强转为int...原创 2018-04-15 21:17:31 · 323 阅读 · 0 评论 -
多态与多态对象模型
这里简单介绍下什么是多态,多态的构成条件,多态原理以及多态的对象模型。在介绍多态之前,先简单的介绍下什么是虚函数。虚函数 类的成员函数前面加virtual关键字,则这个成员函数称为虚函数。 注:1. 除静态成员函数 2. 内联函数不能定义为虚函数 虚函数重写: 当在子类的定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(也称覆盖)...原创 2018-02-20 23:02:38 · 317 阅读 · 0 评论 -
图说C++对象模型:对象内存布局详解
转自:http://mp.blog.csdn.net/postedit阅读目录0.前言1.何为C++对象模型?2.文章内容简介3.理解虚函数表3.1.多态与虚表3.2.使用指针访问虚表4.对象模型概述4.1.简单对象模型4.2.表格驱动模型4.3.非继承下的C++对象模型5.继承下的C++对象模型5.1.单继承5.2.多继承6.虚继承6.1.虚基类表解析6.2.简单虚继承6.3.虚拟菱形继承7.一...转载 2018-02-20 22:09:07 · 10153 阅读 · 3 评论 -
菱形继承和虚继承
首先继承,继承方式和访问限定符,以及派生类的默认成员函数。然后在对菱形继承与虚继承进行详细的介绍。继承 1. 定义 继承是面向对象复用的最要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。 2. 继承方式与访问限定符 访问限定符:public(公有)、protected(保护)、私有(p...原创 2018-02-19 23:08:15 · 255 阅读 · 0 评论 -
String引用技术写时拷贝
浅拷贝&深拷贝 string类的赋值浅拷贝会使多个对象指向同一块空间,当调用析构函数时会使一块空间释放多次,导致程序崩溃。再进一步我们会想到深拷贝,调用拷贝构造或赋值时会拷贝一块新的空间,并将值拷贝下来,这样各自指向自己的数据块,析构时释放各自的数据块。但由于不断的开辟空间、释放空间会花费时间,而且当创建对象较多时,会占用大量的内存。那怎样去避免这样的问题呢? ...原创 2018-02-17 22:32:11 · 210 阅读 · 0 评论 -
智能指针
智能指针 概念 所谓智能指针就是智能/自动的管理指针所指动态资源的释放。 现阶段的智能指针是一种通用实现技术,是使用引用技术。 发展历史 第一阶段(C++98):auto_ptr ----自动指针 auto_ptr 的主要思想是 管理权转移, 但其缺陷很大,当通过拷贝构造函数,通过操作符=赋值后,原来的那个智能指针对象就失效了。只有新的智能 指针对象可以有效使...原创 2018-03-07 17:36:12 · 166 阅读 · 0 评论 -
类和对象&四个默认成员函数
类相当于对同类事物的抽象,对象是类的实例。在定义类的时候,一般存在类的成员函数和成员变量,这里先简单介绍下,类的基本知识,成员函数、成员变量和访问限定符等知识,以及类实例化对象,对象的大小。接着会介绍写类的四个默认成员函数。类和对象的基础知识 类是将不同类型的数据和这些数据相关的操作封装在一起的集合体。访问限定符 三种访问限定符:public(...原创 2018-01-29 14:17:45 · 657 阅读 · 0 评论 -
C/C++动态内存管理
这里首先对内存做简单了解,然后总结malloc/free和new/delete的关系及差异,深度剖析new/delete以及模拟实现new[]/delete[]。 C/C++程序分配的内存 1. 栈区(stack):由编译器自动分配释放,存放函数局部变量、函数参数、返回数据等。 2. 堆区(heap):一般由程序员分配释放 3. 全局区(...原创 2018-02-03 09:34:16 · 233 阅读 · 0 评论 -
C++对传参和传返回值时的优化处理
这里先用一个例子总结构造函数和拷贝构造函数的N中调用情况,以及C++对传参和传返回值时的优化处理,再完成优化处理的一道题目。关于对象作参数或做返回值时的传值&传引用情况例题:#includeusing namespace std;class Date{ public : Date() { cout<<"Date()" <<endl; } Date(c原创 2018-01-30 23:06:53 · 365 阅读 · 0 评论 -
C++格式控制输出
C++ 在输出数据时,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出。例如,在C语言中printf()函数可以非常方便控制保留几位小数输出,但在C++中cout() 和printf() 还是有些区别。对比C和C++中保留两位小数输出: 这里简单介绍下C++中格式化控制输出:一种是使用控制符控制输出格式,另一种是使用流对象的原创 2018-01-20 21:56:57 · 13975 阅读 · 0 评论 -
C/C++中数字与字符串之间的转化
数字与字符串之间的转化在C中:方法:C标准库中的sprintf,sscanf字符串转数字 sscanf #include<stdio.h>//字符串转数字void Testsscanf(){ //字符串转化为整数 char str1[] = "1234567"; int a; sscanf(str1,"%d",&a); printf("%d...原创 2018-08-25 14:46:55 · 5929 阅读 · 0 评论