![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 72
jfkidear
这个作者很懒,什么都没留下…
展开
-
内存泄漏的原因
1.new,malloc后没有delete,free2.创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄.3.创建内存映射文件,CreateFileMapping,MapViewOfFile后没有C转载 2011-08-31 19:56:27 · 1569 阅读 · 0 评论 -
深拷贝与浅拷贝探析
深拷贝与浅拷贝探析1. 深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李四,不管是张三缺胳膊少腿还是李四缺胳膊少腿都不会影响另外一个人。比较典型的就转载 2011-08-30 18:34:00 · 478 阅读 · 0 评论 -
创建xml文件
C++的XML编程经验――LIBXML2库使用指南写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太转载 2011-10-11 16:44:47 · 7849 阅读 · 0 评论 -
关于头文件中定义的全局变量的包含
在头文件中定义了一个变量,若另一个文件再“int 变量名”,则会再产生一个相同变量的定义,在linux环境中编译时会发生如menu.o:(.sbss+0x0): multiple definition of `is_refresh_living_time_thread_created'main.o:(.sbss+0x0): first defined here的错误,要在包含该转载 2011-10-20 10:12:40 · 963 阅读 · 0 评论 -
头文件中定义变量
我在head.h中定义一个变量int head_value1 = 1;int head_value2;请问,我在源文件中像下面的方法使用是否正确?//file.cvoid pf(){ head_value1 = 10; head_value2 = 20; printf("Source file head_value1 = %d : head_v转载 2011-11-22 16:01:41 · 1202 阅读 · 0 评论 -
字符指针的初始化
字符指针的初始化(2006-8-4 16:04:00)【收藏】 【评论】 【打印】 【关闭】初学者经常被这个问题所困惑:char *p="abc"==>"abc"是一个const char*,为什么能够赋值给char *? 很多论坛上都可以看到这样的提问帖,不过这些帖子有的讲的是错误的,有的虽然是对的,但是讲的不细致,初学者不好理解。对此,我转载 2011-11-28 10:53:40 · 7399 阅读 · 2 评论 -
类和对象深入讨论——指向类的成员的指针
类和对象深入讨论——指向类的成员的指针2011-07-04 0:07指向类的成员的指针 类的成员本身也是一个变量,函数或者对象等。因此也可以直接将它们的地址存放到一个指针变量中,这样就可以使指针直接指向对象的成员,进而可以通过这些指针访问对象的成员。需要指出的是,通过指向成员的指针只能访问公有的数据成员和成员函数。指向对象的成员的指针使用前要先声明,转载 2012-02-11 15:44:32 · 508 阅读 · 0 评论 -
C++派生类--基类构造函数,内嵌对象(子对象)的执行顺序
C++派生类--基类构造函数,内嵌对象(子对象)的执行顺序分类: C++2012-01-14 16:28 5人阅读 评论(0) 收藏 举报 与派生类构造函数的初始化列表顺序无关,是按如下顺序:1.基类构造函数(按继承时的顺序)2.子对象构造函数(按类中声明的顺序)3.派生类自己的构造函数 析构时:与构造时相反 测试程序如下:#inc转载 2012-02-11 18:04:09 · 2090 阅读 · 0 评论 -
C++new的用法
C++new的用法分类: 技术2008-07-10 16:12 2403人阅读 评论(4) 收藏 举报c++中,new的用法很灵活,这里进行了简单的总结:1. new() 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量;2. new[] 分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量; #include#include转载 2012-02-11 18:27:27 · 391 阅读 · 0 评论 -
内存管理:new和delete
C++ 指针(二)--c++一、内存管理:new和delete1、new操作符:从操作系统获得内存块,并返回该内存块的首地址。 delete操作符:将new申请的内存返还给操作系统。开始一个简单的例子:?#include #includeusingnamespace std转载 2012-02-11 18:29:21 · 625 阅读 · 0 评论 -
为什么父类指针可以指向子类反之则不行
为什么父类指针可以指向子类反之则不行分类: c/c++ c/c++2010-11-14 00:28 193人阅读 评论(0) 收藏 举报例如: class a {public: int aa}; class b:public a {public: int bb; } 从内存的来看 如a ---------| |占一个int数据大小转载 2012-02-12 13:41:27 · 694 阅读 · 0 评论 -
关于new创建对象的弱智问题
大家好: 我是个C++菜鸟。 现在我有一个关于new操作符创建对象的弱智问题,请大家帮忙解决: //==================== class MyClass; //定义了一个我自己的类 ………… MyClass *pMyObj = new MyClass(); //创建对象的实例 pMyObj->转载 2012-02-11 17:50:12 · 911 阅读 · 0 评论 -
C++两种方式创建对象
C++两种方式创建对象(new和申明)分类: C/C++/VC2011-11-13 13:09 281人阅读 评论(0) 收藏 举报环境:VS2010问题:1.如何让一个类的对象只能够在堆上创建(即使用new创建,如:T *p=new T;), 而不能在栈上创建(即直接申明方式,如:T t;);2.如何让一个类的对象只能够在栈上创建(即直接申明方转载 2012-02-11 18:00:23 · 527 阅读 · 0 评论 -
关于C++基类、派生类的引用和指针(动态绑定和静态绑定)
关于C++基类、派生类的引用和指针分类: c/c++2011-03-03 21:45 365人阅读 评论(0) 收藏 举报class A{ ......}class B : public A{ .....}(1)A *pA = new B(2)B b; A &rb=b;第(1)个是说一个基类的指针指向派生类的实例?这转载 2012-02-12 14:54:18 · 1383 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
C++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {转载 2012-02-11 17:27:44 · 312 阅读 · 0 评论 -
explicit构造函数
C++笔记(1)explicit构造函数Explicit Constructors(显式构造函数)收藏 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}Stri转载 2012-02-11 18:12:36 · 394 阅读 · 0 评论 -
c++中new和delete的使用方法
c++中new和delete的使用方法new和delete运算符用于动态分配和撤销内存的运算符new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.转载 2012-02-11 18:19:08 · 321 阅读 · 0 评论 -
指向基类/派生类指针,指向基类成员/派生类成员指针,及互相赋值
指向基类/派生类指针,指向基类成员/派生类成员指针,及互相赋值分类: C++2010-03-01 20:39 175人阅读 评论(0) 收藏 举报可以安全地将一个指向基类成员的指针赋值给一个指向派生类的成员的指针,反过来不行。另外,可将一个指向派生类对象的指针赋值给一个指向基类得指针,即基类指针可在不加显式转换的情况下指向派生类对象。代码测试如下,结果确转载 2012-02-12 14:05:45 · 619 阅读 · 0 评论 -
指向类的成员的指针
【补足基础】指向类的成员的指针分类: C++基础2011-08-09 14:57 25人阅读 评论(0) 收藏 举报指向类的成员的指针 分为指向类的数据成员和成员函数的指针。 指向数据成员的指针格式如下: ::* 指向成员函数的指针格式如下: (::*)() 例如,设有如下一个类A:转载 2012-02-12 14:19:03 · 501 阅读 · 0 评论 -
C++中成员初始化列表的使用
C++中成员初始化列表的使用分类: C/C++基础2008-08-21 11:52 6126人阅读 评论(4) 收藏 举报 C++在类的构造函数中,可以两种方式初始化成员数据(data member)。1,在构造函数的实现中,初始类的成员数据。诸如:class point{private: int x,y;public: point(int m=转载 2012-02-12 15:12:08 · 394 阅读 · 0 评论 -
C++成员初始化列表
C++成员初始化列表分类: 平台无关语言的编程2009-08-20 11:14 370人阅读 评论(0) 收藏 举报类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 初始化阶段可以是显式的或隐式的,取决于是否存在成员初始化表。隐式初始化阶段按照声明的顺序依次调用所有基类的缺省构造函数,然后是所有成员类对象的缺省构造函转载 2012-02-12 15:12:40 · 439 阅读 · 0 评论 -
GetMemory
但是不会出错函数GetString2设计概念却是错误2010-05-26 10:32来源:店长 店长网 店长培训 店长论坛如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?void GetMem转载 2012-02-12 20:45:07 · 1287 阅读 · 0 评论 -
指针参数是如何传递内存的
指针参数是如何传递内存的2011-10-19 09:33:41标签:参数 指针如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num) { p = (char转载 2012-02-12 23:40:34 · 382 阅读 · 0 评论 -
STL学习小记
STL学习小记2009-05-09 17:04 387人阅读 评论(0) 收藏 举报STL(Standard Template Libarary)主要提供了三类工具:容器container,迭代器iterato,算法algorithm.STL提供了两类容器: 序列容器——以线性序列方式组织对象; 关联容器——用关联的键把对转载 2012-02-23 11:49:55 · 606 阅读 · 0 评论 -
C/C++程序员应聘常见面试题深入剖析
C/C++程序员应聘常见面试题深入剖析 1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能转载 2012-02-13 16:00:06 · 370 阅读 · 0 评论 -
迭代器失效
一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。几种标准非STL容器,包括数组、bits转载 2012-02-23 16:07:11 · 5074 阅读 · 1 评论 -
Erase-remove惯用法
Erase-remove惯用法分类: c/c++相关2007-09-28 11:39 1140人阅读 评论(0) 收藏 举报 Erase-remove惯用法Vector中包含8个元素,现在要求删除是10的所有元素10A , 10B都是代表10,只是为了区分,书写为10A,10B10A010B010A1转载 2012-02-23 18:50:10 · 921 阅读 · 0 评论 -
拷贝构造函数:默认拷贝(浅拷贝)、深拷贝构造函数
拷贝构造函数:默认拷贝(浅拷贝)、深拷贝构造函数分类: C/C++理论2009-02-24 13:23 1582人阅读 评论(4) 收藏 举报 一、 拷贝构造函数与构造函数的区别: 拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)--参考分析1。 拷转载 2012-04-19 09:51:18 · 945 阅读 · 0 评论 -
C++的精英化趋势与两个关键缺陷
C++的精英化趋势与两个关键缺陷分类: 理想流 C++ 毕业生2011-12-14 00:06 29302人阅读 评论(209) 收藏 举报精英化趋势C++是一门引起无数争议的语言。眼下最常听到的声音则是C++将趋于没落,会被某某语言取代。我很怀疑这种论调的起点是商业宣传,C++的真实趋势应该是越来越倾向于精英化。精英化是指在可用可不用C++的领域中转载 2012-05-22 21:47:17 · 609 阅读 · 0 评论 -
const 修饰函数相关
const 修饰函数相关分类: C/C++2010-03-01 21:00 22人阅读 评论(0) 收藏 举报看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant转载 2012-07-05 10:32:44 · 3664 阅读 · 1 评论 -
const_cast和static_cast
const_cast和static_cast分类: C plusplus2008-06-26 18:09 478人阅读 评论(0) 收藏 举报 const_cast和static_castStatic_cast可以对对象也可以对指针也可以对引用,但是const_cast只可以对指针和引用使用,后者不可以对对象用,如果你要把一个const值转化为非const值只能用隐式执行或通过转载 2012-07-05 10:51:39 · 708 阅读 · 0 评论 -
reinterpret_cast
reinterpret_cast reinterpret_cast是C++里的强制类型转换符。 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。 例如:int *n= new int ; double *d=reinterpret_cast (n); 在进行计算以后, d 包含无用转载 2012-07-05 14:47:53 · 455 阅读 · 0 评论 -
reinterpret_cast
reinterpret_cast (expression)reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类转载 2012-07-05 14:55:55 · 2429 阅读 · 0 评论 -
STL Containers
librarySTL ContainersStandard Template Library: ContainersA container is a holder object that stores a collection of other objects (its elements). They are implemented as class templates, wh转载 2012-07-05 16:19:26 · 725 阅读 · 0 评论 -
reinterpret_cast,const_cast,static_cast
reinterpret_cast,const_cast,static_cast (2012-04-08 14:16:08)转载▼标签: 杂谈分类: C/CPlusPlusstatic_cast 用法:static_cast ( expression ) 该运算符把expression转换为type-id类转载 2012-07-05 14:44:16 · 441 阅读 · 0 评论 -
c/c++内存机制(一)(原)
博问闪存首页新随笔联系管理随笔- 72 文章- 8 评论- 78 c/c++内存机制(一)(原)一:C语言中的内存机制在C语言中,内存主要分为如下5个存储区:(1)栈(Stack):位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效。(2)堆(Heap):由程序员用malloc/calloc/转载 2012-08-06 22:33:33 · 992 阅读 · 0 评论 -
虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)
虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)一. 虚析构函数我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:class Base{public: Base(){} virtual ~Base(转载 2012-07-23 20:46:05 · 456 阅读 · 0 评论 -
深入浅出C++虚函数表
深入浅出C++虚函数表2007-08-06 13:58 8495人阅读 评论(7) 收藏 举报如要转载请注明作者和本url为什么要了解虚函数表了解虚函数表对理解C++实现多态的机制会有更深的了解,对对象的内存布局会有更好的认识。 验证虚函数表的存在(C++中的struct和class实际上是一样的)C++中当一个类中存在virtual函数(虚函数)或者它的父转载 2012-07-24 16:21:59 · 677 阅读 · 0 评论 -
C++虚函数表解析(转)
C++虚函数表解析(转)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函转载 2012-07-24 16:24:02 · 671 阅读 · 0 评论 -
map key是结构体的find问题:小于号重载须注意的问题 strict weak ordering
map key是结构体的find问题:小于号重载须注意的问题 strict weak ordering2010-12-08 10:35 609人阅读 评论(0) 收藏 举报这是今天写程序中遇到的两个诡异的问题。我的 IDE 是 VC++2005 ExpressiEdition 。 第一个问题是关于 map 的。话不多说,以下 20 多行的 C++ 代码重现了我遇到的问题:转载 2012-07-24 16:44:38 · 1323 阅读 · 0 评论