随笔分类 - C++
摘要:在写C++代码时候出了个幺蛾子...一个容易忽略的错误: 比较符号连写, vb, python惹的祸...脑子里跟着印象就这么写出来了ListItem* MenuListModel::find(int row) const{ if (0 i.operator (true).operator false当然, 有的时候连写操作符还是挺方便:int a, b; a = b =1;虽然较真一点, 如果是类类型, 还是不要这么写;C++的坑好多, 很多其他语言的语法糖千万不要随便用, 虽然我知道这个是基础中的基础知识, 但是写了几回python什么的回来就自然容易不注意...要么是我脑子不够...
阅读全文
摘要:指针和引用区别>引用在创建的时候需要初始化, 指向有效对象, 必须与合法的存储单元关联, 不能再改变为其他对象的引用;>指针可以在定义以后任意时候再初始化, 指向的地址和地址内存放的数据都可以改变;>引用不可为空, 指针可以为空 (0/NULL); >const指针可以是NULL, 也有可能是野指针; >引用和指针的语义是相似的, 引用是不可改变的指针, 指针是可以改变的引用. 其实都是实现了引用语义. 常引用 >利用引用提高效率 保护数据不被改变 const [type]& [name] = var; Note 用基类指针操作派生类的数组, p++
阅读全文
摘要:Part1Java Native Interface-JNI-JAVA本地调用JNI标准是Java平台的一部分, 允许Java代码和其他语言进行交互;开始实现->Step 1)编写Java代码, 编写一个JNI接口HelloJNI.javapublic class HelloJNI { static { System.loadLibrary("hello"); // hello.dll (Windows) or libhello.so (Unixes) } // A native method that receives nothing and returns voi
阅读全文
摘要:Issue:在函数模板特化的过程中, 编译时遇到多重定义的错误; (VC2010和g++)以下是一个特化的例子:template <class T>T maxA( T t1, T t2 ) { return (t1 > t2 ? t1 : t2);}//特化 specializetypedef const char *PCC;template<> PCC maxA< PCC >( PCC s1, PCC s2 ) { return ( strcmp( s1, s2 ) > 0 ? s1 : s2 );}1)如果这段代码是添加在main.cpp里面
阅读全文