C++
文章平均质量分 50
monk_CD
这个作者很懒,什么都没留下…
展开
-
字符编码(ucs2 ucs4 utf)
源地址:http://blog.charlee.li/unicode-intro/最近一直在忙点私活,又好久没写blog了,再不写点的话二月份就又要以单篇文章结束了。 前一阵子一直在研究Unicode,索性把研究结果介绍一下吧。可能大家都听说过 Unicode、UCS-2、UTF-8 等等词汇,但它们具体是什么意思, 是什么原理,之间有什么关系,恐怕就很少有人明白了。 下面就分别介绍一下它转载 2015-12-06 13:17:39 · 6492 阅读 · 0 评论 -
内存对齐规则
#include "stdafx.h"#include using namespace std;class A{public: char m_a; double m_b; int m_c; double m_e;};class B{public: double m_a; char m_b; short m_c; int m_d; char m_e; int原创 2015-11-23 22:06:01 · 380 阅读 · 0 评论 -
浅拷贝导致的问题
昨天在工作中遇到一个问题,这样:while(...){ ..... //昨天在做装备洗练功能的时候,点击洗练按钮整个程序就挂掉了,找了半天,发现是下面这个问题。 //这样赋值后,第一次循环结束释放a没有问题,但是当第二次循环结束再次释放a的时候,整个程序crash掉了。 //原因: 因为A类(A类有父类)不是我写的,A使用了默认拷贝构造函数,导致A类中的指针发生了浅拷贝,然后第一次释原创 2015-11-13 13:36:35 · 1227 阅读 · 0 评论 -
C++11统一初始化形式,使用{}
//使用vs2013测试代码class A{public: A(int i, int y) { m_a = i; m_b = y; } void show() { cout << m_a << endl; cout << m_b << endl; }private: int m_a; int m_b;};void show(A a){ a.sh原创 2015-10-24 15:34:16 · 1076 阅读 · 0 评论 -
类的友元类的说明
有以下友元类的情况:0.友元类可以访问类的private和protected数据1.类A的友元类是B,那么在B类的成员中,可以通过类A定义的对象,直接访问A类的private和protected成员。(相当于此时B类的所有成员,都变成了A类的成员,可以随意访问A类成员)2.类A的友元类是B,类A的派生类是C。那么友元类B中是不能访问派生类C的private和protected成员的。 (友元关系是原创 2015-07-06 22:17:17 · 1158 阅读 · 0 评论 -
数组的几种定义方式及初始化
int main(){ int* p = new int[5]{1, 2, 3, 4}; //初始化为:1,2,3,4,0 int* p1 = new int[5]; //成员值:未初始化 memset(p1, 1, 5 * sizeof(p1)); //5个成员值被初始化为:1 int p2[5]; //成员值都:未初始化 memcpy(p2, p, siz原创 2015-10-23 10:26:13 · 12914 阅读 · 1 评论 -
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win3转载 2015-07-05 15:58:30 · 318 阅读 · 0 评论 -
c/c++中内存区域划分大总结
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2015-06-29 17:34:28 · 430 阅读 · 0 评论 -
C++ 11 Lambda表达式
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下: [函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体} 可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返回值类型转载 2015-04-20 15:26:56 · 405 阅读 · 0 评论 -
虚函数指针(vptr)与虚函数表(vptb)
1. 基类指针指向派生类对象#include "stdafx.h"#include <iostream>using namespace std;class A{public: A():a(10){}private: int a;};class B : public A{public: virtual void print() { cout原创 2015-03-24 23:24:18 · 1007 阅读 · 0 评论 -
头文件和源文件
test.h void show();test.cpp#include using namespace std;void show(){ cout << "a it is test" << endl;}IncludeProblem.cpp#include "test.h"int main(){ show(); ret原创 2015-01-12 22:23:59 · 598 阅读 · 0 评论 -
C++笔记
1.静态变量static与this!(1)非静态方法参数传递时,有一个隐式参数this,这个this就是调用用该方法的对象本身。比如,Object o=new object(); o.toString(Object this),且o==this;这样在非静态方法中就可以通过this来得到调用对象的其他域和方法!(2)静态方法(函数)是属于类的,而不属于某个对象,原创 2017-11-03 13:52:46 · 372 阅读 · 0 评论