C++11
C++14
二级指针实现单链表的插入、删除今天看了coolshell上关于二级指针删除
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成ch
C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别
Defaulted 函数背景问题C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函
这个问题有点争议,看了很多博客,也去技术论坛搜了下,基本得出以下结论:malloc在堆
本文主要讲述C++ new关键字和operator new, placement new之间的种种关联,new的
这几天在整理硬盘的资料,发现一个PDF,名字叫《C++内存管理技术内幕》,名字很霸气,于是顺着好奇心打开看看。花了一个多小时,终于看完,看完的感觉就是相
ader_and_implementation_file.html在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以
realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢
最近学习《STL源码剖析》一书,看到SGI的第二级配置器时,空闲内存链表使用了一个神奇的联合体(union)结构,代码如下:[cpp] view plain copy union obj{ union obj * free_list_link; char client_data[1]; /* The client sees this.*/ }; 书中描述为这样:由于uni
项目中有一些地方为了得
Terminate calling processTerminates the process normally, performing the regular cleanup for terminating programs.Normal program termination performs the following (in the same order):Object
c语言函数指针的定义形式:返回类型 (*函数指针名称)(参数类型,参数类
一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一下Singleton模式,用一个static函数来帮助创建这个类的实例,问题就解决了! class CParent {p
1、保留有效数字问题#include<iostream>#include<iomanip>#include "stdlib.h"using namespace std;int main(){ double PI=3.1415926; cout<<setprecision(3)<<PI<<endl; system("pa
【1】#pragma once这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。【2】两者的使用方式有何区别?示例代码如下: 1 //方式一:2 #ifndef __SOMEFILE_H__3 #d
union 维护足够的空间来置放多个数据成员中的“一种”,而不是为
C++中嵌入python程序——使用API接口,从函数到类 C++中嵌入python程序——参数传递 如何实现 C/C++ 与 Python 的通信?
作者:Eric S. Raymondhttp://www.catb.org/esr/structure-packing/谁应阅读本文本文探讨如何通过手工重新打包C结构体声明,来减小内存空间占用。你需要掌握基本的C语言知识,以理解本文所讲述的内容。如果你在内存容量受限的嵌入式系统中写程序,或者编写操作系统内核代码,就有必要了解这项技术。如果数据集巨大,应用时常逼近内存极限,这项技术会有所
先看下面一段代码: 文件main.cpp#include<iostream>using namespace std;int main(int argc, char *argv[]){ int a =0; switch(a) { case 0: int b=1;cout<<b<<endl;b
相比于断言适用于排除逻辑上不可能存在的状态,异常通常是用于逻辑上可能发生的错误。在C++98中,我们看到了一套完整的不同于C的异常处理系统。通过这套异常处理系统,C++拥有了远比C强大的异常处理功能。在异常处理的代码中,程序员有可能看到过如下的异常声明表达形式:void excpt_func() throw(int, double) { ... }&nbs
的初衷:本文,将详细分析C/C++ Volatile关键词的功能 (有多种功能)、Volatile关键词在多
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。 该命令有两种格式:一种是简单的
下面介绍缓冲区的知识。一、什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间
C++ 规格要求数组大小的定义上,以及枚举值(enumerator values)都要求必须是编译器常数表示式:int getCount()
我们已经知道了字面值常量的值是不可更改的,所以称之为常量。变量是内存中的一块存储空间,我们可以读写里面的内容
在C++中,多态是利用虚函数来实现的。比如说,有如下代码:#include using namespace std; class Anima
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号