C++
一林三撇
技术控,喜欢软件开发,喜欢文学,喜欢下厨。
展开
-
C++中应该使用const,enum,inline而非#define
1、使用#define target source,会引发预处理器的处理而不是编译器的处理,预处理器只会将程序中出现target 的部分替换为source,不会做语法检查。当如下情况时:#define CALL_WITH_MAX(a,b) f((a)>(b)?(a):(b))int a = 3,b=2;CALL_WITH_MAX(++a,b); //这样会导致a前加两次,返回的原创 2014-03-15 20:20:23 · 449 阅读 · 0 评论 -
C++变量的链接性
1、global非static变量的链接性为外部,在一个文件中定义后在其他文件可以通过,不能在头文件中定义。extern typename val;注意,变量只能定义一次,即其他文件进行引用时不能进行初始化操作,即 extern typename val = num;是错误的;2、static的global的变量的链接性为内部,即在一个文件中定义,只能在该文件中使用,可以在头文件中定义原创 2014-12-02 08:44:36 · 1575 阅读 · 0 评论 -
关于C++函数重载
C++函数重载是使用形参作为特征标,写这篇文章是说明一下const作为函数重载特征的情况:1、形参为引用时void func(const int& val){ std::cout}void func(int& val){ std::cout}int main(){ const int val1= 1; int val2 =原创 2014-12-01 14:43:31 · 448 阅读 · 0 评论 -
C++数组与指针小结
1、数组指针(一个指向数组的指针)int arr[3] = {1,2,3};int (*p)[3] = &arr;for(int i = 0;i{ std::cout}2、指针数组(一个存放指针的数组)int a=1,b=2,c=3;int *parr[3] = {&a,&b,&c};for(int i = 0;i{ std::cout原创 2014-12-01 14:30:33 · 361 阅读 · 0 评论 -
C++随笔(指针和引用的使用注意事项)
项目中遇到一个问题,一个check数据的工具崩溃问题,debug发现是因为一个原创 2014-09-24 19:37:50 · 673 阅读 · 0 评论 -
关于递归函数的替换
在工作中遇到一个算法使用递归实现,算法的原创 2014-08-01 19:50:00 · 3786 阅读 · 0 评论 -
C++输入输出运算符重载
Foo.hclass Foo{public:Foo(int)}原创 2014-07-22 20:02:21 · 667 阅读 · 0 评论 -
C++ lambda表达式
图中的标注如下所示: lambda-introducer(在本主题的后面称为“capture 子句”)lambda declarator(在本主题的后面称为“参数列表”)mutable(在本主题的后面称为“可变规范”)exception-specification(在本主题的后面称为“异常规范”)trailing-return-type(转载 2014-06-02 15:50:46 · 392 阅读 · 0 评论 -
类模板的成员函数
templateclass Test{ Test(); ~Test}原创 2014-06-02 15:27:48 · 782 阅读 · 0 评论 -
C++随笔(一)
1、C++中对数据成员中的const值或者引用的初始化必须放在初始化列表,因为这两种数据只能初始化一次,而初始化列表是数据被初始化的地方。原创 2014-03-16 11:43:00 · 509 阅读 · 0 评论 -
C++随笔(二)
1、拷贝函数:当为一个继承类写构造函数的时候要注意不要忘记拷贝从基类继承而来的数据。class PriorityCustomer::Customer{private:Priority priority;}PriorityCustomer::Priority(const PriorityCustomer &rhs):Customer(rhs),priority(rhs.p翻译 2014-03-29 17:22:00 · 397 阅读 · 0 评论 -
operator[]
为避免重复代码,operator[]左值操作符可以用其右值操作符来构造class BookTest {public: BookTest(const string& name); virtual ~BookTest(); const char& operator[](size_t index)const {原创 2014-03-15 20:40:21 · 751 阅读 · 0 评论 -
android studio下ndk C++开发
1、下载NDK(Native Develop Kit)交叉编译工具,解压NDK开发工具集,随便哪里都行,看你自己的习惯,但是还是要自己知道,别什么时候不知不觉删了,然后开发JNI始终不行,怎么都找不到错误,那就杯具了。 2、在 local.properties 文件中设置ndk的路径: ndk.dir=D:\android\android-ndk-r10d (我的nkd的解压路径:D:\and原创 2015-11-07 14:21:30 · 3538 阅读 · 0 评论