随笔分类 -  c++

摘要:C++简单实现对象引用计数示例 运行结果如下: ss.value->refCount=1s1.value->refCount=2ss.value->refCount=2s2.value->refCount=1operator =[delete value] value->refCount=0s2.v 阅读全文
posted @ 2017-06-05 16:35 鸭子船长 阅读(1107) 评论(0) 推荐(0) 编辑
摘要:Camera视角:确定显示的视场及视角。 Game:显示的基类。静态单例模式。但是获取方式很奇怪。 Game::getInstance得到的是__gameInstance,但是__gameInstance是在Game()构造函数里=this。因此如果没有Game的实例,this就是NULL。 然而使 阅读全文
posted @ 2017-05-26 12:36 鸭子船长 阅读(648) 评论(0) 推荐(0) 编辑
摘要:__user宏简单告诉编译器(通过 noderef)不应该解除这个指针的引用(因为在当前地址空间中它是没有意义的)。 (void __user *)arg 指的是arg值是一个用户空间的地址,不能直接进行拷贝等,要使用例如copy_from_user,copy_to_user等函数。 默认是内核空间 阅读全文
posted @ 2017-05-12 15:30 鸭子船长 阅读(615) 评论(0) 推荐(0) 编辑
摘要:#include< file >编译程序会先到标准函数库中找文件 #include”file” 编译程序会先从当前目录中找文件 参考原文 转: 在C程序中包含文件有以下两种方法: (1)用符号“<”和“>”将要包含的文件的文件名括起来。这种方法指示预处理程序到预定义的缺省路径下寻找文件。预定义的缺省 阅读全文
posted @ 2017-04-25 16:58 鸭子船长 阅读(501) 评论(0) 推荐(0) 编辑
摘要:下面举例记录宏的一种使用方式。 ##name 用来在宏定义中传递名称变量。 由于宏定义仅直接插入调用处,可以用来进行函数声明 4.1 interface_cast [-> IInterface.h] 1 template<typename INTERFACE> 2 inline sp<INTERFA 阅读全文
posted @ 2017-04-20 17:53 鸭子船长 阅读(725) 评论(0) 推荐(0) 编辑
摘要:struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用st 阅读全文
posted @ 2017-03-01 15:02 鸭子船长 阅读(162) 评论(0) 推荐(0) 编辑
摘要:自己的实现 转自:https://www.0xaa55.com/forum.php?mod=viewthread&tid=425&extra=page%3D1&page=1 我要讲的三个大部分分别是:1、libpng是什么,能做什么?2、怎样让自己的程序可以使用libpng库?3、怎样借助libpn 阅读全文
posted @ 2016-12-21 14:27 鸭子船长 阅读(12103) 评论(0) 推荐(0) 编辑
摘要:编译: [X61@horizon threads]$ gcc thread_cond.c -lpthread -o tcd 以下是程序运行结果: [X61@horizon threads]$ ./tcd thread1: lock 30thread1: unlock 40thread2: lock 阅读全文
posted @ 2016-10-13 17:26 鸭子船长 阅读(516) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/finallyliuyu/archive/2010/09/25/1834301.html 浅谈C++变量命名规则 不知道别的公司如何,反正我现在的公司对变量命名并没有一定的规范,唯一要求就是能简单易懂,但是,我想,这个多个程序员,大概每个人都有自己 阅读全文
posted @ 2016-10-13 14:41 鸭子船长 阅读(532) 评论(0) 推荐(0) 编辑
摘要:typeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别: 声明 函数声明符中的参数类型链表和返回类型 类型定义 类型操作符s sizeof操作符 复合文字 typeof实参 编译器接受带双下划线的关 阅读全文
posted @ 2016-09-09 15:56 鸭子船长 阅读(330) 评论(0) 推荐(0) 编辑
摘要:typeid操作符的作用就是获取一个表达式的类型。返回结果是const type_info&。不同编译器实现的type_info class各不相同。但c++标准保证它会实现一个name()方法,该方法返回类型名字的c-style字符串。 如果typeid的操作数不是类类型或者是没有虚函数的类,则t 阅读全文
posted @ 2016-09-09 15:12 鸭子船长 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理 即会作一定的判断。 对指针进行dynamic_cast,失败返回null,成功返回正常cast后的对象指针; 对引用进行dynamic_cast,失败抛出一个异常,成功返回正常 阅读全文
posted @ 2016-09-09 15:11 鸭子船长 阅读(1483) 评论(0) 推荐(0) 编辑
摘要:研究Android的时候,经常会遇到sp、wp的东西,网上一搜,原来是android封装了c++中对象回收机制。说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件: a. 该类是虚基类RefBase的子类或间接子类 b. 该类必须定义虚构造函数。如virtual ~MyClass(); 阅读全文
posted @ 2016-08-15 14:50 鸭子船长 阅读(7533) 评论(0) 推荐(0) 编辑
摘要:argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i<argc; i++) cout<<argv[i]< 阅读全文
posted @ 2016-08-09 15:36 鸭子船长 阅读(223) 评论(0) 推荐(0) 编辑
摘要:头文件:#include <sys/time.h> #include <unistd.h>定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当 阅读全文
posted @ 2016-07-28 14:26 鸭子船长 阅读(205) 评论(0) 推荐(0) 编辑
摘要:c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的: void f(int n); std::thread t(f, n + 1); t.join(); 但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如我希望获取线程函数的返回结果的时候,我就不能直接通过thre 阅读全文
posted @ 2016-06-27 15:35 鸭子船长 阅读(533) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 LRESULT CALLBACK WinProc(HWND,UINT,WPARAM,LPARAM); 3 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int... 阅读全文
posted @ 2015-11-04 11:05 鸭子船长 阅读(217) 评论(0) 推荐(0) 编辑
摘要:没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。首先是把TCHAR转为char1 void OpenFileName::TCHAR2Char(const TCHAR* tchar, char * _cha... 阅读全文
posted @ 2015-11-03 16:40 鸭子船长 阅读(1366) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示