![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
m_LeonWANG
这个作者很懒,什么都没留下…
展开
-
C++手记:常量引用
1.一般从一个函数返回一个局部对象的引用是不对的:T & func( void ) { T t; return t; } 这是因为函数return结束后,t的生命周期完结被析构。但是可以通过常量引用从函数返回一个局部对象:const T & func( void ) { T t; return t; } ...const T &原创 2014-01-11 22:50:33 · 594 阅读 · 0 评论 -
C++杂记:头文件互相引用致残和解决办法
如果声明类A的文件A.h和声明类B的文件B.h原创 2014-06-20 14:47:56 · 476 阅读 · 0 评论 -
C++杂记:const对象与const成员函数
昨天晚上在读C Primer时读到了“const对象只能访问const成员函数”,不能理解,为什么不行呢?只要在我的成员函数中没有改变其他成员的值就可以了,为什么不能调用非const成员函数呢?后来又仔细阅读了this指针部分,明白了,笔记一下。 C Primer中说了,在一个对象调用其成员函数时,它隐含的一个形参this指针。 例如,我们定义了一个函数CTest::ttt()原创 2014-06-18 17:37:23 · 570 阅读 · 0 评论 -
C++杂记:C++中关键字解析
1.namespacenamespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:std::cout 2、使用using关原创 2014-06-14 16:15:01 · 690 阅读 · 0 评论 -
C++杂记:“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
这是一个连接时候检查到的错误,原创 2014-07-09 17:22:55 · 24314 阅读 · 0 评论 -
error C2011: “XXX”:“class”类型重定义
在文件头加上了“#pragma once”,“#pragma once”是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。原创 2014-05-30 15:16:53 · 18999 阅读 · 0 评论 -
C++杂记:堆栈的用法与区别
一 预备知识:程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、 栈区(stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、 堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。3、 全局区(静态区)(static)全局变量和静态变量的存储是放在一块的,初始化的全局变转载 2014-06-26 10:10:33 · 662 阅读 · 0 评论 -
C++杂记: 内联函数的使用,与宏定义、成员函数区别
内联函数类似于C里边的宏,只是宏经常有一些不安全因素,比如 宏定义 add() 是 a+b,调用的时候宏定义直接展开,不做任何的判断,如果调用res = add()*c; 得到的代码就是res = a+b*c;不是想要的结果。 内联函数可以理解成一个安全的宏定义,他就是一个真正的函数,只是不用压栈出栈,速度快,而且比宏定义安全,所以利用 短且频率 比较高的函数可以写成内联函数inline原创 2014-06-25 11:32:34 · 1355 阅读 · 0 评论 -
C++杂记:继承与构造函数的调用
在创建子类对象时,系统需要调用父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下: 1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。 2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,原创 2014-06-04 16:04:17 · 788 阅读 · 0 评论 -
Sleep(x)的使用和sleep(0)作用解析
假设现在是 2012-12-16 3:37:40,如果我调用一下 Thread.Sleep(1000) ,在 2012-12-16 3:37:41 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?我们先回顾一下操作系统原理。操作系统中,CPU竞争有很多种策略。Unix系转载 2014-06-04 17:25:55 · 2778 阅读 · 1 评论 -
lib 和 dll 的区别、生成以及使用详解
首先介绍一下静态库(静态链接库)、动态库(动态链接库)的概念,首先两者都是代码共享的方式。静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。即静态库中的指令都全部被直接包含在最终生成的 EXE 文件中了。在vs中新建生成静态库的工程,编译生成成功后,只产生一转载 2014-04-14 11:09:24 · 878 阅读 · 0 评论 -
Cocos2d-x:scheduleOnce落坑与CCCallFunc的使用
【Problom】事情的起因是这样子的,我在一个函数中使用了scheduleOnce延时一秒调用callBack,如下:this->scheduleOnce(schedule_selector(HelloWorld::callBack), 1.0);函数callBack实现如下:void HelloWorld::callBack(float dt) { this->sched原创 2014-01-14 09:28:34 · 11413 阅读 · 1 评论 -
C++获取各种类型最大、最小值方法
以int为例,最大值是(numeric_limits::max)(),最小值是(numeric_limits::max)()其他类型类似原创 2013-12-29 10:02:50 · 5379 阅读 · 0 评论 -
C++杂记:类成员指针
注意,C++类成员指针默认不是NULL,原创 2014-06-20 18:16:58 · 531 阅读 · 0 评论