C/C++
Guijun626
皮
展开
-
C++/C对比,C++关键字,const,引用,基本数据类型
C++98/03关键字 asm do if return typedef auto double inline short typeid bool dynamic_cast int signed typename break else long sizeof union case enum mutable static ...原创 2017-09-24 19:52:55 · 333 阅读 · 0 评论 -
指针与数组的基础知识分析
指针的小结 指针是存放地址才出现的,地址是为了表示一块儿空间的。 指针让地址有效地方存放,指针让内存的访问更加方便。 指针的大小在32位平台上是4个字节,在64位平台上是8个字节。int main(){ int a = 10;//在内存中开辟一块儿空间 int *p = &a;//在这里我们对变量a,取出它的地址,可以使用&操作符。 ...原创 2017-08-04 15:26:19 · 358 阅读 · 0 评论 -
剖析各类型和整数、浮点数在内存中的存储
**数据类型的介绍及有无符号型****内置类型**{整型unsigned/signed{ char ---1 short ---2 int ---4 long --4/8字节}{ float --4 double --8long long --8long double --8例:![这里写图片描述](http://img.blog.csdn.net/201707...原创 2017-07-25 23:20:33 · 434 阅读 · 1 评论 -
一,二维数组的相关问题
#define _CRT_SECURE_NO_WARNINGS 1//1.解析一维数组的创建和初始化 type_t arr_name [const_n]; //type_t是创建数组的类型,arr_name是数组名,[const_n]里是常量表达式,用来指定数组的大小; int arr[3] = { 1, 2, 3 };//创建一个大小为3个元素的整型数组; ch...原创 2017-07-19 18:45:16 · 1470 阅读 · 1 评论 -
乘法口诀表的灵活打印
//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,//输入9,输出9 * 9口诀表,输入12,输出12 * 12的乘法口诀表。原创 2017-07-18 17:58:53 · 401 阅读 · 0 评论 -
智能指针 auto_ptr/scoped_ptr/shared_ptr/weak_ptr
一:智能指针的发展历史1、为什么要引入智能指针?因为存在以下情景:#include<iostream>using namespace std;void F1(){ int* tmp = new int; return;//这句代码跳出本函数 delete tmp;//这里并没有得到释放}int main(){ F1();...原创 2018-04-16 09:37:54 · 230 阅读 · 0 评论 -
分析C++类型萃取问题
一、什么是类型萃取,它有什么作用 1. 类型萃取是实现不同类型数据面对同一函数实现不同的操作。 2. 增强代码的复用性和可维护性。 3. 它与类封装的区别是:并不用知道所调用的对象是什么类型,类型萃取是编译后知道类型,先实现;而类的封装则是先定义类型,后实现方法。 二、【POD类型萃取】 POD: plain old data 平凡类型(无关痛痒的类型)–基本...原创 2018-03-09 12:42:39 · 334 阅读 · 1 评论 -
C/C++动态内存管理
一、内存空间结构 栈区:自动存放变量。在执行函数时,编译器会将函数的参数,局部变量自动存放在栈内,函数调用结束时会自动回收空间,栈内存分配效率高但容量有限。栈是又高地址向低地址生长,向下生长的。 堆区:在运行时调用程序来分配内存(malloc/new),由程序员自己决定分配内存的大小,同时需要程序员自行释放分配的空间(free/delete)。 数据段:内存在程序启动的时候才被分...原创 2018-02-28 22:45:09 · 218 阅读 · 0 评论 -
C/C++小项目之注释转换
描述:打开一个文档,将里面所有用C注释的改成C++注释。 思路:设置一个状态机,分为四种状态,每次从文件里读到一个字符之后判断是何种状态,在进行对应的处理就好了。 图示: CommentConvert.h# pragma once#include<iostream>using namespace std;void _StartConvert(FILE* fin...原创 2017-12-05 19:29:04 · 434 阅读 · 0 评论 -
C++模板不支持分离编译
分析为什么模板不支持分离编译? 在C++中,为了一个项目的规范,我们通常把代码归为三类:声明文件、实现文件、测试文件. 比如,我要用C++实现一个链表,那么就会创建这3个文件: LinkList.h //链表的相关声明 LinkList.cpp //链表的实现代码 Test.cpp //链表测试代码(本文忽略) 那么问题来了,普通链表这样写起来一点问题都...原创 2017-12-02 12:18:07 · 412 阅读 · 0 评论 -
C++构造函数传参与返回值时的优化
总结C++对传参和传返回值时构造的优化处理这里用具体例子说明,简单定义一个日期类:class Date{public: Date(int year = 0, int month = 0, int day = 0) :_year(year) , _month(month) , _day(day) { co...原创 2017-11-18 14:51:37 · 1087 阅读 · 0 评论 -
继承&&多态
继承【概念与理解】:继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。 例:实现一个简单的继承关系 显然这里在子类继承父类时提到了继承关系,所以在这里将三种继承关系分析一下: 小小的总结一下:1. 基类的私有成员在派生类中是不能被访问的,如果一些基类成员不想被基类对象直接访问,但需要在派生类中能访问,就定义为...原创 2017-11-07 20:24:27 · 262 阅读 · 0 评论 -
C++基础知识/类/类大小/类的默认成员函数
类和对象 类的定义 看图总结:类中包含成员函数与成员变量两部分。可加上访问限定符对成员变量和成员函数进行访问权限的限制。#include<iostream>using namespace std;class Person{public://这里定义为公有的,是为了在类的外面直接访问,如果这里不写public,则编译器默认为私有的 void Di...原创 2017-10-05 16:58:10 · 338 阅读 · 0 评论 -
C++ 多态/多态对象模型 单继承 多继承 菱形继承
1:什么是多态?多态=动态多态+静态多态a.关于静态多态:函数重载b.关于动态多态:构成动态多态的两个必要条件:(1)子类对父类的虚函数重写(2)函数通过父类得到指针或引用进行传参 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。 举个例...原创 2018-04-22 13:00:27 · 500 阅读 · 0 评论