随笔分类 -  C++ Learnxx

摘要:C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如... 阅读全文
posted @ 2015-11-25 08:03 findumars 阅读(580) 评论(0) 推荐(0) 编辑
摘要:原地址: http://blog.csdn.net/buaaxiao/archive/2010/08/15/5813230.aspx(注,本文只做排版修改) mutalbe的中文意思是“可变的,易变的”,跟constant(即C++中的const)是反义词。 在C++中,mutable也是为了突破c 阅读全文
posted @ 2015-11-21 00:39 findumars 阅读(271) 评论(0) 推荐(0) 编辑
摘要:首先不要被人蒙了,如果是这样,根本编译不过:int i=1;int b=i+++++i;printf("%d %d\n", b ,i);Mingw报错:error: lvalue required as increment operand (好像是说,++缺左值,这里的++是上题的第三第四个加号)V... 阅读全文
posted @ 2015-08-04 22:05 findumars 阅读(484) 评论(0) 推荐(0) 编辑
摘要:就是剩下部分语句不用执行了,但是又不退出当前函数,只退出当前if块。虽说else可以解决问题,但是这样还是会重复写代码,假如continue语句后面的内容是相同的话。当然可以通过再次加一个if语句解决问题,但是忽然发现没有if语句的continue也是挺有趣的。 阅读全文
posted @ 2015-03-30 21:45 findumars 阅读(1054) 评论(0) 推荐(0) 编辑
摘要:inl文件介绍inl文件是内联函数的源文件。内联函数通常在C++头文件中实现,但是当C++头文件中内联函数过多的情况下,我们想使头文件看起来简洁点,能不能像普通函数那样将内联函数声明和函数定义放在头文件和实现文件中呢?当然答案是肯定的,具体做法将是:将内联函数的具体实现放在inl文件中,然后在该头文... 阅读全文
posted @ 2015-03-16 05:11 findumars 阅读(9081) 评论(0) 推荐(2) 编辑
摘要:C/C++中的变量分为全局变量、静态全局变量、局部变量和静态局部变量,在《C/C++中静态局部变量的特点与应用》中我们介绍过静态局部变量,今天我们的目标是全局变量。单个文件中的全局变量 简单一点说,全局变量就是在函数外面定义的变量,下面是一个最简单的实例,一共定义了两个int型的全局变量a和b,... 阅读全文
posted @ 2015-01-22 22:40 findumars 阅读(9616) 评论(0) 推荐(0) 编辑
摘要:在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用... 阅读全文
posted @ 2015-01-22 22:36 findumars 阅读(480) 评论(0) 推荐(0) 编辑
摘要:说实话,从来没有感觉到这个关键字有用,直到今天。 explicit的意思是明显的,和它相对应的一个词是implicit意思是隐藏的。 我参考了MSDN和《c++标准程序库》对这个关键字的描述,并参考了网络上对这个关键字的解释。现将它的使用方法和总结记录如下: 首先这个关键字只能用在类构造函数。它的作 阅读全文
posted @ 2014-05-23 04:14 findumars 阅读(510) 评论(1) 推荐(0) 编辑
摘要:关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化! 如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是该函数不会修改类的非静态数据 阅读全文
posted @ 2014-05-23 03:51 findumars 阅读(700) 评论(0) 推荐(0) 编辑
摘要:volatile关键字 volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下: int volati 阅读全文
posted @ 2014-05-23 03:44 findumars 阅读(494) 评论(0) 推荐(0) 编辑
摘要:会记下所有C++类型转换的例子在这里:#include "stdafx.h"#include using namespace std;int main(int argc, char* argv[]){ cout<< 22/5*3 <<endl; // 输出12,注意连进位都没有包括 re... 阅读全文
posted @ 2014-05-23 03:29 findumars 阅读(312) 评论(0) 推荐(0) 编辑
摘要:C++的IO比较复杂,记录一下碰到的问题:#include "stdafx.h"#include using namespace std;int main(int argc, char* argv[]){ cout << 22/5*3 << endl; printf("Hello Wor... 阅读全文
posted @ 2014-05-22 23:37 findumars 阅读(554) 评论(0) 推荐(0) 编辑
摘要:不能光转贴,有空要熟悉之后,要写点心得。现在发现 . 的优先级确实很高。 C: PrecedenceOperatorDescriptionAssociativity 1 ++ -- Suffix/postfix increment and decrement Left-to-right () Fun 阅读全文
posted @ 2014-04-28 19:51 findumars 阅读(1009) 评论(0) 推荐(0) 编辑
摘要:1. const修饰普通变量和指针 const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即va 阅读全文
posted @ 2014-04-28 19:48 findumars 阅读(1496) 评论(0) 推荐(1) 编辑
摘要:C++编译器对属性的初始化检查远没有Java严格// Java编译通过:class yy { public static void main(String[] args) { int i; System.out.println("Hello World!"); }}// Java编译通不过,在打印那行说i没有初始化。这说明Java的编译检查比C++严格。class yy { public static void main(String[] args) { int i; System.out.println("Hello World!"+i); }}// 阅读全文
posted @ 2013-09-04 05:28 findumars 阅读(585) 评论(0) 推荐(0) 编辑
摘要:int fgetc(FILE *stream)int fputc(int ch,FILE *stream)fgetc( )函数从输入流的当前位置返回一个字符,并将文件指针指示器移到下一个字符处,如果已到文件尾,函数返回EOF,此时表示本次操作结束,若读写文件完成,则应关闭文件。fputc()函数完成将字符c h的值写入所指定的流文件的当前位置处,并将文件指针后移一位。fputc()函数的返回值是所写入字符的值,出错时返回EOF。int fscanf(FILE *stream,char *format,arg_list)int fprintf(FILE *stream,char *format, 阅读全文
posted @ 2012-04-01 22:33 findumars 阅读(5107) 评论(0) 推荐(0) 编辑