随笔分类 -  C++

摘要:从结果来看,栈上的二维数组全是连续的,即arr[0][9] 到 arr[1][0] 也是连续的,这点应该没有什么争议。 对于动态分配的数组来说,先将二维指针分配10个一维指针,此时创建了10个指针对象,这十个指针对象各自有自己的地址,我们用&读取出来,指针对象的值也是一个地址,我们直接可以用test 阅读全文
posted @ 2021-02-01 03:20 zengzhaocheng 阅读(726) 评论(0) 推荐(0)
摘要:RTTI 运行时刻类型识别允许”用只想基类的指针或引用来操纵对象“的程序能够获取到”这些指针或引用所指对象“的实际派生类型 阅读全文
posted @ 2019-01-09 16:39 zengzhaocheng 阅读(250) 评论(0) 推荐(0)
摘要:C++ Prime 里有原话(中文):这种“用基类的指针或引用操纵多个类型”的能力被称为多态(polymorphism)。 例如有基类Camera, 他的子类有各种不一样的 camera,可以是佳能的,可以是尼康的... 现在已知函数: void lookat(const Camera *pcame 阅读全文
posted @ 2019-01-09 16:26 zengzhaocheng 阅读(594) 评论(0) 推荐(0)
摘要:__declspec(dllexport) extern "C" class __declspec(dllexport) Chahahaha { } 用来输出dll 阅读全文
posted @ 2019-01-08 11:42 zengzhaocheng 阅读(128) 评论(0) 推荐(0)
摘要:#include using namespace std; class A{ public: void func() { cout << "hahaha" << endl; } int m_num = 1; }; int main() { A* ptr = NULL; A obj; obj.func 阅读全文
posted @ 2018-12-20 15:14 zengzhaocheng 阅读(301) 评论(0) 推荐(0)
摘要:这种情况一般要注意检查一下传的参数是char‘’ 还是 string"",是单引号还是双引号。 阅读全文
posted @ 2018-12-17 22:14 zengzhaocheng 阅读(246) 评论(0) 推荐(0)
摘要:我遇到的错误是 error C2280: attempting to reference a deleted function 引用一个删除的函数。 像ofstream`这种没有复制构造函数的不可复制的类传参要传引用或指针。 一般而言,对象的赋值构造函数如果开发者没有提供,则编译器会生成默认的赋值构 阅读全文
posted @ 2018-12-17 17:33 zengzhaocheng 阅读(341) 评论(0) 推荐(0)
摘要:表达式必须包含累类型 类没有写构造函数 PhaseCorrection cPhase(); cPhase.correct(); 报错,改成 PhaseCorrection cPhase; cPhase.correct(); 正确 阅读全文
posted @ 2018-12-05 21:34 zengzhaocheng 阅读(1429) 评论(0) 推荐(0)
摘要:首先 double mean[4]]={0.}; const double *& haha = mean;//error 这种情况是非法的.原因是,这里的const限定的是double,也就是这是一个 “指向const double 的指针变量的引用“,所以,即使这个指针可以被改变,但是指向的值不能 阅读全文
posted @ 2018-12-05 17:03 zengzhaocheng 阅读(2608) 评论(0) 推荐(0)
摘要:初看OpenCV写多项式的算式有点晦涩难懂,形如(((z3*y2 + z2)*y2+z1)*y2)来表示一个二次到六次的偶次多项式,这样的算式究竟快在哪里?今天正好比较闲,就拿来跑一跑,供大家参考(但其实意义不大),代码如下所示: #include<iostream> #include<time.h 阅读全文
posted @ 2018-10-27 15:04 zengzhaocheng 阅读(407) 评论(0) 推荐(0)
摘要:例如 SimpleBlobDetector::Params &parameters = SimpleBlobDetector::Params(); //这样写是因为,在SimpleBlobDetector类中又有Params这个结构体的定义,如下所示: //public:: /* struct: C 阅读全文
posted @ 2018-10-20 10:54 zengzhaocheng 阅读(244) 评论(0) 推荐(0)
摘要:标题是废话,是我之前一直理解错了。 例如 vector<int> test(5); test.push_back(1); //这时test的大小就变成6了。、 我还以为会先填满没有初始化的5个大小。。。 阅读全文
posted @ 2018-09-18 20:45 zengzhaocheng 阅读(253) 评论(1) 推荐(0)
摘要:主要注意它们的优先级都很高,且都是左结合的,不同在于点操作符操作的是对象,箭头操作符操作的是指针,且都能被其对应的类型的数值右值赋值。 以下是例子: #include<iostream> using namespace std; struct Point{ double x,y; }; int ma 阅读全文
posted @ 2018-08-29 14:42 zengzhaocheng 阅读(1210) 评论(0) 推荐(0)
摘要:有一个问题,那就是既然指针都是4字节,为什么要有不同类型的指针,只有一个不就好了吗? 原因有两个: 1.为了地址增量的方便 看这个例子 #include<iostream> using namespace std; int main(){ double b = 13; double *p_b = & 阅读全文
posted @ 2018-08-19 20:07 zengzhaocheng 阅读(1003) 评论(0) 推荐(0)
摘要:class A { int _a; public: A(int a): _a(a){} friend int f1(A &);//1 friend int f2(const A &);//2 friend int f3(A);//3 friend int f4(const A);//4 }; /*. 阅读全文
posted @ 2018-08-19 19:47 zengzhaocheng 阅读(543) 评论(0) 推荐(0)
摘要:空悬指针 简单地说,空悬指针是对象的指针的生存周期比对象更长所导致的,也就是说,对象销毁、删除了,不存在了,指针仍然存在,这时这个指针就成了空悬指针。 当对象被析构、删除时,如果指向它的指针没有被同时修改,那么指针仍然会指向那块内存(但是那块内存已经没有东西了)。系统此时可能会重新分配这块已经fre 阅读全文
posted @ 2018-08-19 18:54 zengzhaocheng 阅读(1070) 评论(0) 推荐(0)
摘要:C++ double型不能实施%操作符,作为除数被除数都不可以,但可以用fmod函数,则作为除数被除数都可以,即 fmod = numer - tquot * denom //tquot 是除法结果向“下”取整(向0的方向)的结果,denom是除数 一个例子是 /* fmod example */ 阅读全文
posted @ 2018-08-17 16:40 zengzhaocheng 阅读(8820) 评论(0) 推荐(0)
摘要:#include<iostream> using namespace std; int main(){ int b[4]={1,2,3,4}; const int* a = b; int * c = a;//error: invalid conversion from 'const int*' to 阅读全文
posted @ 2018-08-16 11:10 zengzhaocheng 阅读(1157) 评论(0) 推荐(0)
摘要:1.位运算 位运算可以有效改善乘除法比较慢的问题,同时,用除法可以避免double型变量,因为一个整数除以某个数就可以变成小数,当然,这里的前提是要是2的整数次幂才好做除法,同时要能忍受一定的精度损失。 阅读全文
posted @ 2018-08-15 21:10 zengzhaocheng 阅读(239) 评论(0) 推荐(0)
摘要:#include<iostream> using namespace std; int *test_array(int *a){ int length = sizeof(a)/sizeof(a[0]); int *b = new int [length]; for (int i = 0; i < l 阅读全文
posted @ 2018-08-15 16:41 zengzhaocheng 阅读(650) 评论(0) 推荐(0)