C/C++学习笔记
Manketon
这个作者很懒,什么都没留下…
展开
-
有关“类前置声明”和“包含头文件”的相关问题
转自:http://blog.chinaunix.net/uid-25872711-id-338364.html 首先,文章主要内容是通过学习其它博客的总结。 以前一直没有注意过这方面的问题,总是认为.cpp中有新引入的类时,只要将其头文件在.h文件前端引入即可。这种做法比.h文件中前置声明引入类,.cpp文件中引入头文件的方式方便很多。但实际上,这是非常不好的习惯,因为这种方式会转载 2014-07-12 20:08:10 · 1545 阅读 · 0 评论 -
设计模式之装饰模式(C++实现)
#define _CRTDBG_MAP_ALLOC #ifdef _DEBUG #include //#include //这两个头文件也必须放在#ifdef #endif 之间#define new new(_NORMAL_BLOCK, __FILE__, __LINE__) //必须这么写才能看到内存泄漏处的文件名和行号#endif #include原创 2014-07-10 17:03:31 · 580 阅读 · 0 评论 -
正确使用std::auto_ptr
转自:http://blog.csdn.net/just_a_beginning/article/details/4386755转载 2014-07-07 22:40:59 · 811 阅读 · 0 评论 -
extern "C"的用法解析
转自:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html转载 2014-07-07 20:01:49 · 340 阅读 · 0 评论 -
C语言中函数参数的入栈顺序
转自:http://blog.csdn.net/frankiewang008/article/details/7481865对技术执着的人,比如说我,往往对一些问题,不仅想做到"知其然",还想做到"知其所以然".C语言可谓博大精深,即使我已经有多年的开发经验,可还是有许多问题不知其所以然。某天某地某人问我,C语言中函数参数的入栈顺序如何?从右至左,我随口回答。为什么是从右至左呢?我终究没有给出转载 2014-08-31 21:06:17 · 897 阅读 · 0 评论 -
模板类中的友元函数写法
1.友元函数在类的定义体中原创 2014-08-04 14:10:31 · 912 阅读 · 0 评论 -
在VS2008中实现模板编译模型
一,类模板之包含编译模型原创 2014-08-04 10:47:13 · 788 阅读 · 0 评论 -
引用计数智能指针std::tr1::shared_ptr与weak_ptr
C++ 11智能指针之shared_ptr -- 本文来源于创世软件团队博客, 原文地址: http://www.cnblogs.com/hujian/archive/2012/12/10/2810754.html转载 2014-08-02 20:57:19 · 1013 阅读 · 0 评论 -
C++代码中的内存泄漏检查如何做?(一)
转自:http://www.cnblogs.com/GnagWang/archive/2010/03/25/1696545.htmlWin32工程如何找到内存泄漏:我试了下用VisualStudio建立的Win32 Console Application和Win32 Project项目,结果都不能检测出内存泄露。所以我们需要找到如何让VS帮我发现问题的方法。查询了MSDN后,发现有个叫转载 2014-07-10 13:53:41 · 796 阅读 · 0 评论 -
C++中访问虚函数表获取虚函数地址
#ifndef _STUDENT_H_#define _STUDENT_H_#include#includeusing namespace std;class Student{public: static int studentcount;//用于统计学生数 static string schoolname;//学校名 static const int post_code;//原创 2014-10-07 17:12:30 · 804 阅读 · 0 评论 -
C++成员函数的调用
#include using namespace std;class CBase{public: void printA() { cout<<"printA"<<endl; } virtual void printB() { cout<<"printB"<<endl; } static void printC() { cout << "调用stati print原创 2014-10-07 16:59:43 · 665 阅读 · 0 评论 -
可重入函数与不可重入函数
转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被转载 2015-08-06 10:18:09 · 406 阅读 · 0 评论 -
C++ 11: 右值引用,转移语义与完美转发
参考:https://www.cnblogs.com/reasno/p/4744281.html (重点看)转载 2019-08-07 14:15:19 · 182 阅读 · 0 评论 -
C\C++代码优化
参考:C代码优化方案C\C++代码优化的27个建议转载 2019-08-14 17:07:56 · 314 阅读 · 0 评论 -
Edit VA Snippets用到的宏
1Date2 $DATE$ Year/month/day formatted as %04d/%02d/%02d3 $DAY$ Day of month formatted as %d4 $DAY_02$ Day of month formatted as %02d5 $DAYNAME$ Three-character abbreviation of day6 $DAYLONG...转载 2019-08-27 15:25:18 · 264 阅读 · 0 评论 -
C++的前置声明
转自:http://blog.csdn.net/fg2006/article/details/6234973刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样: //a.h #include "b.h" class A { .... privat转载 2014-07-12 20:26:38 · 410 阅读 · 0 评论 -
指针的大小到底是由谁决定?是多少?
应该说这是一个非常基础的问题,教科书上说指针大小和机器字长相同,即32位机指针长度为4字节!但是对不对呢?为什么是这样? 搜了一下相关资料。。。居然发现回答不统一,很多人也同样是糊里糊涂。下面对这个问题做一个系统的整理和分析: 首先,介绍几个基本概念:(主要摘自百度百科) 字长:在同一时间中处理二进制数的位数叫字长。通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就转载 2014-07-18 09:21:36 · 637 阅读 · 0 评论 -
文本文件与二进制文件区别
文本文件与二进制文件区别一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以转载 2014-06-26 11:04:57 · 466 阅读 · 0 评论 -
类成员初始化实例
#ifndef _STUDENT_H_#define _STUDENT_H_#include#includeusing namespace std;class Student{public: static int studentcount;//用于统计学生数 static string schoolname;//学校名 static const int post_code;//原创 2014-10-07 17:11:05 · 536 阅读 · 0 评论 -
多重继承下的虚表访问
/**目的:在多重继承中,对应N个父类的虚函数,共产生N个虚表,在子类中产生N个虚表指针,指向对应的N个虚表。采用地址访问的形式来访问这N个虚表。思想:由于虚表中存放的是函数地址,而地址就是正整数,32位中为4字节,和int一样的。故可将虚表看做是int数组,将地址看成int数据。**/#include using namespace std; class Base1 {pub原创 2014-10-07 17:07:34 · 620 阅读 · 0 评论 -
C++ STL 容器总结
关于STL中set容器的一些总结http://www.jb51.net/article/41682.htm翻译 2014-06-23 20:02:09 · 377 阅读 · 0 评论 -
VAssistX 使用方法
1)Alt + O - 在.h与.cpp文件中实现相互转换转载 2014-07-05 17:35:46 · 1820 阅读 · 0 评论 -
C/C++中extern关键字详解
转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html转载 2014-07-07 19:54:06 · 416 阅读 · 0 评论 -
auto_ptr 与 shared_ptr 用法和区别总结
1.auto_ptr 被复制后,将失去原来所致资源的所有权;转载 2014-07-08 12:29:29 · 4752 阅读 · 0 评论 -
判断一颗二叉树是否为二叉排序树
int last_output=INT_MIN,flag=1; //************************************// Method: MidTraverse// FullName: MidTraverse// Access: public // Returns: int// Qualifier: 判断二叉树是否为原创 2014-08-25 16:20:53 · 1503 阅读 · 0 评论 -
非递归实现快速排序算法
//Data.h#ifndef _DATA_H_#define _DATA_H_#include using namespace std;templateclass Data{public: Data(Type* p, int low, int high); Data(const Data& data); Data() { } const Data operator=原创 2014-10-07 16:35:59 · 626 阅读 · 0 评论 -
如何将二维数组作为函数的参数传递
转自:http://blog.sina.com.cn/s/blog_613e4fea0100hi2d.html转载 2014-06-21 20:40:19 · 622 阅读 · 0 评论 -
多叉树非递归遍历
void travel(Node *pNode){ stack stack; stack.push(pNode); Node *lpNode; while(!stack.empty()) { lpNode = stack.top(); stack.pop(); Deal(lpNode); fo原创 2014-06-23 18:32:04 · 1486 阅读 · 0 评论 -
C++中static和const
1.const对象只能调用const方法2.const原创 2014-08-02 11:00:59 · 421 阅读 · 0 评论 -
C++模板函数声明定义分离编译错误详解
转自:http://www.linuxidc.com/Linux/2013-07/87266p2.htm转载 2014-07-07 20:05:42 · 478 阅读 · 0 评论 -
递归函数转换为非递归函数
void NonRecurFunction(DATATYPE data){ stack s; while (ExistHandyWork(data) || !s.empty()) //存在手头工作或者存在待完成工作 { while (ExistHandyWork(data)) //存在手头工作 { s.push(data); //将手头工作保存为待完成工作原创 2014-07-05 10:35:11 · 735 阅读 · 0 评论 -
记录《C/C++100个典型的Bugs》网址
转自:http://www.2cto.com/kf/201310/251155.html转载 2014-06-22 00:17:35 · 464 阅读 · 0 评论 -
迭代器失效的几种情况总结
Reference:迭代器失效的几种情况总结 (总结了数组型数据结构、链表型数据结构、树型数据结构)值得细看转载 2019-08-28 18:57:01 · 396 阅读 · 0 评论