摘要:
lamada表达式 声明一个返回数组指针的函数 返回指针数组的函数形式如下所示: 括号必须存在 注意->后不能加() Lambda表达式 阅读全文
摘要:
这五种操作:构造(包括移动),赋值(包括移动),析构其实就是定义了对一个对象进行构造,赋值,析构时的行为。理解这些行为并不复杂,复杂的是理解在继承下这些行为的表现。需要注意的是他们并不会被继承(传统意义上的继承)。 拷贝构造函数 形式: class Foo{ public: Foo(); //默认构 阅读全文
摘要:
测试代码1: 在vs2003运行结果如下 ClassA::ClassA() beginClassA::Print()ClassA::ClassA() endClassB::ClassB() beginClassB::Print()ClassB::ClassB() end ClassB::Print( 阅读全文
摘要:
动态内存 每个程序有一个内存池,称为堆,用于存储动态分配的对象,即那些在程序运行时分配的对象。动态对象的生存周期由程序来控制,也就是说,当动态对象不再使用时,我们的代码必须显示的销毁他们。 使用懂态内存是十分必要的额,但众所周知,正确管理动态内存是十分棘手的。比如忘记释放内存就会产生内存泄漏。有时尚 阅读全文
摘要:
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 那么显示声明的构造函数和隐式声明的有什么区别呢? 我们 阅读全文
摘要:
模板为什么要特化,因为编译器认为,对于特定的类型,如果你对某一功能有更好地实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是模板如果有多个类型,那么就只限定为其中的 一部分,其实特化细分为范围上的偏特化与个数上的偏特化。 模板的泛 阅读全文
摘要:
参见 http://en.cppreference.com/w/cpp/types/size_t size_t其实与uintptr_t一个道理。就是一个东西。指针其实就是寻址,与地址总线位数一致,编译器根据平台决定,从性能和可移植性分析有其由来。 之前在《内存拷贝的注意事项》一文中提到过size_t 阅读全文
摘要:
我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题。 一、遍历图像的4种方式:at<typename>(i,j) Mat类提供了一个at的方法用于取得图像上的点,它是一个模板 阅读全文
摘要:
cv::Matdepth/dims/channels/step/data/elemSizeThe class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It can b 阅读全文
摘要:
cbase.h: #ifndef CBASE_H 阅读全文