c++基础学习
文章平均质量分 73
子目
这个作者很懒,什么都没留下…
展开
-
几种情况下析构函数的调用
(1)class A { public: ~A(){cout<<"A destruction"<<endl;} }; class B:public A { public: ~B(){cout<<"B destruction"<<endl;} }; int main() { B *p = new B; del原创 2013-05-12 21:07:44 · 666 阅读 · 0 评论 -
scanf、sscanf和sscanf_s
http://blog.csdn.net/shellching/article/details/4958518 在使用VS2005编译一个程序时,出现了很多警告,说是用的函数是不安全的,应当使用安全版本,即函数名称增加“_s”的版本。 警告内容: warning C4996: 'sscanf': This function or variable may be unsafe. Co转载 2014-01-07 16:52:09 · 740 阅读 · 0 评论 -
fscanf和fgets
函数名: fscanf 功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。 用法: 1 int fscanf(FILE *stream, char *format,[argument...]); FILE *stream原创 2014-01-07 16:21:38 · 1450 阅读 · 0 评论 -
sscanf函数与sscanf_s函数
来源http://www.cnblogs.com/kex1n/archive/2011/06/09/2076501.html #include 定义函数 int sscanf (const char *str,const char * format,........); 函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考s转载 2014-01-06 17:19:14 · 824 阅读 · 0 评论 -
字符串基本操作
#include unsigned int strlenth(char *s) /* 获取字符串长度 */ { unsigned int lenth = 0; if(s!=NULL) { while(*s!='\0')/* 代码在这里实现 */ { s++; lenth++; } } return lenth; } void strcopy(原创 2013-12-02 16:28:38 · 644 阅读 · 0 评论 -
const int i 实现机制
C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢? 本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。 问题分析 简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。 C语言const示例: 复制代码代码如下: const int i=10; int *p=(int *)(&i); *转载 2013-10-14 17:45:07 · 761 阅读 · 0 评论 -
成员函数里的虚机制
#include using namespace std; class Base { public: virtual ~Base() { cout << "~Base1()\n"; f(); } virtual void f() { cout << "Base::f()\n"; } virtual void g(){f();} v原创 2013-08-31 09:45:59 · 511 阅读 · 0 评论 -
const和static在类里的使用规则的简单示例
class Bunch { //enum { size = 10 };用在早期C++版本,同static const static const int size=10;//不占类存储空间 const int num;//占存储空间 static int m;//不占类存储空间 int i[size]; public: Bunch(int i):num(i){}; }原创 2013-08-22 19:44:35 · 551 阅读 · 0 评论 -
二叉树中的递归理解
void CreatBTNode(BTNode *&b,char *str) { BTNode *st[MaxSize],*p=NULL; int top=-1,k; char ch; b=NULL; ch=*str; while(ch!='\0') { switch(ch) { case'(':top++;st[top]=p;k=1;break;原创 2013-07-31 11:38:41 · 629 阅读 · 0 评论 -
STL_容器适配器
那么C++中的容器适配器是干什么的呢?可以做一个类比,我们已有的容器(比如vector、list、deque)就是设备,这个设备支持的操作很多,比如插入,删除,迭代器访问等等。而我们希望这个容器表现出来的是栈的样子:先进后出,入栈出栈等等,此时,我们没有必要重新动手写一个新的数据结构,而是把原来的容器重新封装一下,改变它的接口,就能把它当做栈使用了。 言归正传,理解了什么是适配器以后,其实问题就转载 2013-05-30 10:00:55 · 508 阅读 · 0 评论 -
顺序容器vector、list、deque的区别
说明:这篇文章主要通过查阅网上资料整理而成,并非原创。 顺序容器 三种容器均支持resieze()操作,重新划定容器大小,且此函数有重载。 vector vector和built-in数组类似,是一个在堆上建立的一维数组,它拥有一段连续的内存空间,并且起始地址不变,因此 它能非常好的支持随即存取,即[]操作符。vector因为存储在堆上,所以支持erase( ), resieze()转载 2013-05-28 16:12:57 · 502 阅读 · 0 评论 -
union 使用
int main() { struct { char ch2; union { char ch1; char num; } bbb; }aaa; aaa.ch2='a'; aaa.bbb.num='1'; cout输出为 a 1 1 } ///////////////////////////////////原创 2013-05-12 19:26:39 · 477 阅读 · 0 评论 -
值交换和字符交换的对比
void swap_int(int a, int b) { int temp = a; a = b; b = temp; } void swap_int(int *a, int *b) { int temp ; temp=*a; *a=*b; *b=temp; } void swap_str(cha原创 2013-05-12 19:54:19 · 761 阅读 · 0 评论 -
char[] 与char*的区别
以下内容均来自互联网,系笔者汇总并总结。 1. 问题介绍 问题引入: 在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内 容程序是会崩溃的,而后者完全正确。 程序演示: 测试环境Devc++ 代码 #include using namespace std; main() { char *c1转载 2013-05-13 09:54:43 · 525 阅读 · 0 评论 -
深入理解虚函数表
参考与http://blog.csdn.net/haoel/article/details/1948051 本人不才,按自己的理解略有修改,欢迎大家一起交流。 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真原创 2013-05-22 11:08:38 · 528 阅读 · 0 评论 -
栈内存分配问题
class Base { public: Base(int i) : iBase(i),j(i){} int iBase; int j; }; int main(){ Base b(6); int *p=(int*)(&b); int a=2; int c=3; cout<<(&b.iBase)<<(&b.j)<<endl;原创 2013-05-21 17:39:13 · 463 阅读 · 0 评论 -
成员函数的地址
摘要:介绍了如何取成员函数的地址以及调用该地址. 关键字:C++成员函数 this指针 调用约定 一、成员函数指针的用法 在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而转载 2013-05-21 16:27:16 · 617 阅读 · 0 评论 -
sprintf用法解析
http://www.programfan.com/blog/article.asp?id=12763 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下转载 2014-01-07 16:59:18 · 632 阅读 · 0 评论