c++技巧
文章平均质量分 80
穆江浩
努力学习,天天向上,加油!
展开
-
C++ 继承中的内存布局(经典)
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。原文地址:http://blog.jobbole.com/108457/——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC+转载 2016-12-07 10:27:55 · 327 阅读 · 0 评论 -
C++ 初始化列表
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(s转载 2016-12-05 17:09:45 · 149 阅读 · 0 评论 -
深入理解C++中public、protected及private用法
初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有很大的帮助。这里我们首先要明白下面几点。1.类的一个特征就是封装,public和private作用就是实现这一目的。所以:用转载 2016-12-05 15:50:31 · 261 阅读 · 0 评论 -
C++ 的 cin/cout 为什么比 C 语言的 scanf/printf 慢
为什么c的scanf(printf)比c++的快。网上说加上std::ios::sync_with_stdio(false);就差不多了。做个简单测试:#include#include#include#include#define num 1000000int main(){ //新建一个data.txt文件,保存随原创 2016-12-07 19:51:34 · 732 阅读 · 0 评论 -
cin.fail(), cin.bad(), cin.good(), cin.clear(), cin.ignore()
我们经常会看到程序中会出现 cin.clear(),cin.ignore(), cin.fail()等函数。这些函数都是与cin的错误处理有关的。这一节我们来分析一下cin的错误处理机制,并且学习几个重要的函数:cin.fail(), cin.bad(), cin.good(), cin.clear(), cin.ignore()等。 程序执行时有一个标志变转载 2016-12-07 23:11:17 · 1315 阅读 · 0 评论 -
输入输出流相关操作
最近在输入输出流上载了好多次,所以看了资料,决定写下来供大家参考,欢迎指正:首先明确一点,输入cin和输出cout有四个状态:godbit 无错误 Eofbit 已到达文件尾 failbit 非致命的输入/输出错误 badbit 致命的输入/输出错误 badbit是一些系统底层或者硬件出错,比如文件系统错误,磁盘错误,网络错误等;不可恢复fail原创 2016-12-08 09:42:25 · 278 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2016-12-08 10:24:28 · 145 阅读 · 0 评论 -
C语言字节对齐
一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果转载 2016-12-08 10:47:21 · 265 阅读 · 0 评论 -
C++ 结构体实例和类实例的初始化
结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。一、若类和结构体所有数据成员均为public型,可采取如下带花括号形式进行初始化。注意:① 不论值的个数多少,都必须使用花括号定界② 未指定值的数据成员编译器会自动初始化为转载 2016-12-09 13:40:46 · 1884 阅读 · 0 评论