C++基础
C++基础学习
CodingStart
Sometimes there is no next time, no time-outs, no second chances; sometimes it's now or never.
展开
-
GB2312与UTF-8编码转换 C++
旨在进行http传输中文字符,将中文字符转为UTF-8进行传输;#include<iostream> #include<stdio.h> #include<windows.h>using namespace std;string UrlUTF8(char* str);void GB2312ToUTF_8(string& pOut, char* pText, int pLen);void Gb2312ToUnicode(WCHAR* pOut原创 2021-03-11 15:14:30 · 1506 阅读 · 0 评论 -
哈希表 学习顺序 及 个人心得
简介: Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,根据关键码值(Key value)而直接进行访问的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,存放记录的数组叫做哈希表。理解:转载 2016-09-05 18:32:42 · 4125 阅读 · 0 评论 -
C++类——构造函数、析构函数可以是虚函数么?
回答:构造函数不能为虚函数,而析构函数可以且常常是虚函数。分析:1、析构函数常常是虚函数?下面用一个实例来解释:class Cbase{public: Cbase(){} ~Cbase() { cout << "Cbase :: ~Cbase" << endl; } };class Child : public Cbase{public: Chil原创 2016-08-25 22:36:16 · 2301 阅读 · 2 评论 -
空类型所占内存大小
成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,类所占内存的大小不包括成员函数的大小,虚拟成员函数除外。同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实原创 2016-09-01 14:53:14 · 750 阅读 · 0 评论 -
C++常量折叠
C++常量折叠的简单复习原创 2016-07-09 12:01:14 · 626 阅读 · 0 评论 -
C++——指针和引用
C++指针和引用区别与联系原创 2016-07-07 08:03:52 · 490 阅读 · 2 评论 -
C++ 动态内存管理
对于C++里面 动态内存的简单理解原创 2016-06-21 13:33:00 · 791 阅读 · 0 评论 -
结构体和类的区别(适合初学者C和C++学习)
结构体和类的区别(适合初学者C和C++学习)转载 2016-05-30 14:43:42 · 534 阅读 · 0 评论 -
_thiscall与_cdecl调用方式
_thiscall与_cdecl调用方式有什么区别转载 2016-05-27 23:19:12 · 1304 阅读 · 0 评论 -
C和C++编译器的函数名修饰规则
C编译器的函数名修饰规则 : 对于__stdcall调用约定,编译器和链接器会在输出函数名前加上一个下划线前缀,函数名后面加上一个“@”符号和其参数的字节数 例如_functionname@number。 __cdecl调用约定仅在输出函数名前加上一个下划线前缀 例如_functionname。 __fastc转载 2016-05-26 15:17:28 · 2617 阅读 · 0 评论 -
C++入门之一【操作符重载】
操作符重载的简单认识原创 2016-06-12 10:47:53 · 475 阅读 · 0 评论 -
C++入门之一【类:析构函数)】
【类:构造函数(包含拷贝构造函数)】原创 2016-06-10 23:08:39 · 440 阅读 · 0 评论 -
C++入门之一【类:构造函数(包含拷贝构造函数)】
C++入门之一【类:构造函数(包含拷贝构造函数)】原创 2016-06-03 23:29:34 · 943 阅读 · 0 评论 -
浅析 static、external、const
浅析 static、external、const原创 2016-05-30 15:48:48 · 952 阅读 · 0 评论 -
C++ operator关键字(重载操作符)
重载运算符operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。转载 2016-05-29 22:55:53 · 66283 阅读 · 5 评论 -
C++ list, vector, map, set 区别与用法比较
基本理解:list封装了链表 , vector封装了数组 , list和vector最大的区别在于vector使用了连续的内存存储的 ,支持[] ; list是以链表的形式实现的,地址不一定连续,不支持[]。vector 对于随机访问的速度很快 ,但是头插元素很慢(因为要搬移数据) ,尾插数据较快(用下标通过[ ]访问);list随机访问很慢(需要遍历链表),但是对于插入就很快了(不原创 2016-09-28 22:22:25 · 1586 阅读 · 0 评论 -
STL之vector基本使用实例
最近复习STL,对于vector的一些功能知道,但是就忘记了函数名是啥了,这就很尴尬,所以把经常使用的方法都用了,也方便以后回顾。vector基本方法-->看图:test_code:void test_vector(){ vector vec; vec.push_back(1); vec.push_back(3); vec.push_back(原创 2017-03-22 11:49:38 · 942 阅读 · 0 评论 -
STL之list基本使用实例
list其实就是双向链表,好好复习list的使用。Cplusplus描述的list方法:基本操作实例:void test_list(){ list pList; cout << "push_back() , pop_back() ,begin() , end()测试:" << endl; pList.push_back(1); //尾插 pList.原创 2017-03-22 14:35:47 · 1026 阅读 · 0 评论 -
STL之set、map基本使用实例
set和map都是关联式容器,二者都对内部元素默认排序:升序。set是key结构 , map是key-value结构;set可以去重 , map重载了[ ],查询速度快;set包含的基本方法:map的基本方法:使用这些函数的实例:void test_set(){ //set是 key结构的,是关联式容器,对插入的元素自动排序,默认是升序原创 2017-03-22 15:42:13 · 1005 阅读 · 0 评论 -
面向对象编程思想---OOP
在了解一些OOP知识后,觉得很有必要看看到底什么是面向对象编程,这篇文章写的很好,认真看下去收获很大,所以就转载了,感谢原创!面向对象的方法论: 来自c++primer第十章面向对象是一种程序设计的概念性方法,面向对象最重要的特征是抽象、封装和数据隐藏、多态、继承、代码的可重用性。下面用一个例子来展示面向过程和面向对象程序设计的差别要编写一个程序用于记录垒球队的统计数据,涉及的转载 2017-02-26 17:23:35 · 4282 阅读 · 0 评论 -
虚继承总结(重点:虚继承与虚函数)
虚继承常考题目:下面我们进行分析:因为每个存在虚函数的类都要有一个4字节的指针指向自己的虚函数表,所以每种情况的类a所占的字节数应该是没有什么问题的。 那么类b的字节数怎么算呢?看“第一种”和“第三种”情况采用的是虚继承,那么这时候就要有这样的一个指针vptr_b_a,这个指针叫虚类指针,也是四个字节;还要包括类a的字节数,所以类b的字节数就求出来了。而“第二种”和“第四种原创 2016-10-05 23:10:54 · 1006 阅读 · 0 评论 -
C++【类:日期类】
实 现 日期类 的基本功能原创 2016-06-16 23:07:06 · 2627 阅读 · 0 评论 -
C++入门之——【 继承 】
简介: “继承”就是在已存在的类的基础上建立一个新的类。 已存在的类称为“基类”或者“父类”,新建的类称为“派生类”或“子类”。原创 2016-06-20 21:04:34 · 377 阅读 · 0 评论 -
C++缺省参数
概念:在函数声明或定义的时候给形参一个默认的参数。这样在调用该函数,如果没有给实参,函数的这个形参就默认为这个值。使用规则:1、缺省值必须从右往左给值2、缺省值必须为常量或全局变量 (const/static/普通的 全局变量 也可以作为缺省参数)3、缺省参数只能出现在声明或者定义的一处4、不能把 const的全局变量 作为缺省值5、缺省值不构成函数重原创 2016-07-16 08:13:59 · 1168 阅读 · 0 评论 -
C++模板学习总结
C++模板学习总结原创 2016-07-18 10:11:17 · 725 阅读 · 0 评论 -
模板的特化
模板特化 的基础学习原创 2016-07-18 11:12:22 · 439 阅读 · 0 评论 -
C++---函数内联
内联函数的使用注意,以及和宏的比较原创 2016-07-29 09:32:47 · 468 阅读 · 0 评论 -
一个类如何防止被拷贝
Effective C++:条款06 若不想使用编译器自动生成的函数,就该明确拒绝 .老式写法:class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: noncopyable( const noncopyable& ); n转载 2016-08-28 19:17:52 · 2958 阅读 · 0 评论 -
C++继承体系中Is a 关系 和has a关系
在学习继承的过程中,不管是在书中还是在网上找资料,都跟多态分不开,其中还有个很抓人眼球的问题,那就是书上总是说的is-a关系和has-a关系。 很多书中讲到继承时都会说: public继承是一个接口继承,保持is-a原则,每个父类可用的成员对子类也可用,因为每个子类对象也都是一个父类对象。 (子类 is a 父类) protetced/private继承是一个实现继承,基类原创 2016-09-01 15:50:29 · 2599 阅读 · 0 评论 -
对于RTTI机制的理解
转载: 个人实在是觉得这篇博客写的特别容易理解 ,只要耐心看下去,肯定收货很大!!!http://www.jb51.net/article/55968.htm 这篇文章主要介绍了C++中的RTTI机制详解,本文详细的总结了RTTI的相关知识,需要的朋友可以参考下前言RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运转载 2016-09-01 17:11:05 · 853 阅读 · 1 评论 -
C++之 RAII基本理解与使用
产生原因: 在C++中,如果在这个程序段结束时需要完成一些资源释放工作,那么正常情况下自然是没有什么问题,但是当一个异常抛出时,释放资源的语句就不会被执行。于是Bjarne Stroustrup就想到确保能运行资源释放代码的地方就是在这个程序段(栈帧)中放置的对象的析构函数了,因为stack winding会保证它们的析构函数都会被执行。将初始化和资源释放都移动到一个包装类中的原创 2016-09-06 18:28:05 · 3164 阅读 · 0 评论 -
C++四种类型转换
C++类型转换的使用以及举例原创 2016-10-01 20:26:49 · 320 阅读 · 0 评论 -
C++深拷贝和浅拷贝
浅拷贝浅拷贝原创 2016-07-09 23:20:01 · 419 阅读 · 0 评论 -
C++合成默认构造函数的真相
系统默认合成的构造函数转载 2016-07-08 17:23:43 · 1424 阅读 · 2 评论 -
C++ (重载、覆盖、隐藏)
C++ (重载、覆盖、隐藏) 一些简单理解原创 2016-06-21 23:38:10 · 3502 阅读 · 0 评论 -
早绑定和晚绑定
C++ 早绑定和晚绑定转载 2016-06-22 10:30:17 · 7002 阅读 · 0 评论 -
浅析C++多态性
C++多态性的理解原创 2016-06-22 12:28:35 · 456 阅读 · 0 评论 -
模拟实现string类
string类的模拟实现原创 2016-07-01 14:17:35 · 487 阅读 · 0 评论 -
智能指针-----AutoPtr
智能指针AutoPtr 两种版本 的 基本实现原创 2016-07-02 10:43:26 · 749 阅读 · 0 评论 -
智能指针----ScopedPtr和ScopedPtrArray
前面,已经对 智能指针AutoPtr 简单的剖析和学习了。现在,记录 对 ScopedPtr 的学习和个人的一些理解。ScopedPtr (管理单个对象)对ScopedPtr的理解: 由于智能指针容易出现拷贝时释放两次的情况,所以ScopedPtr主要是防止拷贝 防止拷贝必须满足的两个条件:1、设置保护限定符2、对拷贝构造函数和原创 2016-07-02 13:33:23 · 564 阅读 · 0 评论