
C++进化篇
Big_big_Gu
Big_big_Gu,一如既往都是你。
展开
-
c++中vector与list的区别
c++标准库中,容器vector和list都可以用来存放一组类型相同的数据。而且二者不同于数组的一点是,支持动态增长。但它们还是有有几点不同(1) vector是顺序表,表示的是一块连续的内存,元素被顺序存储;list是双向连接表,在内存中不一定连续。(2)当数值内存不够时,vector会重新申请一块足够大的连续内存,把原来的数据拷贝到新的内存里面;list因为不用考虑内存的连续原创 2013-11-16 19:21:17 · 1029 阅读 · 0 评论 -
sizeof 精要
from: http://blog.youkuaiyun.com/lwbeyond/article/details/7405556要理解 sizeof 的要点,首先要明白字节对齐。一. 字节对齐但一般而言,满足以下两点个:1) 结构体每个成员相对于结构体首地址的偏移量都是本成员大小的整数倍,如不满足则加上填充字节;2) 结构体的总大小为结构体最宽的基本类型成员大小的转载 2014-03-26 20:33:19 · 500 阅读 · 0 评论 -
C++类型转换关键字(*_cast)
在C/C++语言中用 (type) value(在C++还可以采用type(value))来进行显式类型转换(explicit type conversion),常常又被称为强制转换(cast投射/铸模)。这种转换的正确性完全掌握在程序员手中,传统上强制转换往往被过度使用,成为C++程序犯错的一个主要根源。为了减少强制转换的副作用,并且在查错时使程序员能够快速定位(总是最值得怀疑的)强转载 2014-04-08 15:52:12 · 543 阅读 · 0 评论 -
详解 C++ virtual 析构函数
from: http://blog.youkuaiyun.com/lwbeyond/article/details/7497294第一种情况:基类指针指向派生类对象。[cpp] view plaincopy#include using namespace std; class Base{ public:转载 2014-03-26 20:29:33 · 548 阅读 · 0 评论 -
浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2013-11-20 16:26:57 · 767 阅读 · 0 评论 -
字符串常量到底存放在哪个存储区
字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr="hello world!";这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内转载 2014-03-04 21:51:52 · 773 阅读 · 0 评论 -
关于char p[]的数组名不是指针
实际上数组名永远都不会是指针!这个结论也许会让你震惊,但它的确是事实。数组名、指针、地址这几个概念虽然是基础中的基础,但它们恰恰是被混淆和滥用得最多的概念,把数组名说成指针,是一个概念性的错误,实质是混淆了指针与地址两个概念的本质。因此,在讨论数组之前,有必要先回过头来澄清一下什么是指针,什么是地址,什么是数组名.根据C89规定指针是一个保存对象地址的变量,首先是变量,其次变量里的值是地址转载 2014-03-04 21:36:03 · 992 阅读 · 0 评论 -
C语言中字符串常量到底存在哪了?
常量存储总结局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区1、局部变量存储在栈中2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区3、new申请的内存是在堆中4、字符串常量也是存储在静态存储区补充说明:1、栈中的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束;2、对于静态转载 2014-03-04 22:36:56 · 796 阅读 · 0 评论 -
C++函数中const形参与非const形参
关于C++函数中形参、实参const问题,比较绕,在此特意总结归纳一下:先看一个例子:void swap1( int *x, int *y){ int temp=*x; *x=*y; *y=temp;}int main(){int a=10;int b=9;int *p=&a;int *q=&b;swap1(p,q);cout}在这里,我们都知道最后的结果肯定是a=9;b原创 2013-11-14 17:09:06 · 2178 阅读 · 0 评论 -
C++中const用法总结
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nV转载 2013-11-20 13:42:17 · 791 阅读 · 0 评论 -
C++用new和不用new创建类对象区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高转载 2013-11-19 11:30:13 · 1090 阅读 · 0 评论 -
内联函数的使用
在C++中时常会提到内联函数的概念,而内联函数在C++中的使用也是相当普遍的。从内联函数的定义上可以知道,内联函数在使用上有类似宏替换的作用,即在对程序进行编译的时候,直接使用程序的函数体来代替函数名。内联函数的种类:内联函数主要分成两种,一种是类成员内部的内联函数,一种是类外面的全局内联函数。首先,先对类成员内部的内联函数进行说明,在C++的类成员中,如果成员函数的函数体转载 2013-11-18 10:56:45 · 1095 阅读 · 0 评论 -
C++拷贝构造函数详解
from: http://blog.youkuaiyun.com/lwbeyond/article/details/6202256一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a;转载 2014-03-26 20:24:24 · 517 阅读 · 0 评论