随笔分类 - C++
摘要:从结果来看,栈上的二维数组全是连续的,即arr[0][9] 到 arr[1][0] 也是连续的,这点应该没有什么争议。 对于动态分配的数组来说,先将二维指针分配10个一维指针,此时创建了10个指针对象,这十个指针对象各自有自己的地址,我们用&读取出来,指针对象的值也是一个地址,我们直接可以用test
阅读全文
摘要:RTTI 运行时刻类型识别允许”用只想基类的指针或引用来操纵对象“的程序能够获取到”这些指针或引用所指对象“的实际派生类型
阅读全文
摘要:C++ Prime 里有原话(中文):这种“用基类的指针或引用操纵多个类型”的能力被称为多态(polymorphism)。 例如有基类Camera, 他的子类有各种不一样的 camera,可以是佳能的,可以是尼康的... 现在已知函数: void lookat(const Camera *pcame
阅读全文
摘要:__declspec(dllexport) extern "C" class __declspec(dllexport) Chahahaha { } 用来输出dll
阅读全文
摘要:#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
阅读全文
摘要:这种情况一般要注意检查一下传的参数是char‘’ 还是 string"",是单引号还是双引号。
阅读全文
摘要:我遇到的错误是 error C2280: attempting to reference a deleted function 引用一个删除的函数。 像ofstream`这种没有复制构造函数的不可复制的类传参要传引用或指针。 一般而言,对象的赋值构造函数如果开发者没有提供,则编译器会生成默认的赋值构
阅读全文
摘要:表达式必须包含累类型 类没有写构造函数 PhaseCorrection cPhase(); cPhase.correct(); 报错,改成 PhaseCorrection cPhase; cPhase.correct(); 正确
阅读全文
摘要:首先 double mean[4]]={0.}; const double *& haha = mean;//error 这种情况是非法的.原因是,这里的const限定的是double,也就是这是一个 “指向const double 的指针变量的引用“,所以,即使这个指针可以被改变,但是指向的值不能
阅读全文
摘要:初看OpenCV写多项式的算式有点晦涩难懂,形如(((z3*y2 + z2)*y2+z1)*y2)来表示一个二次到六次的偶次多项式,这样的算式究竟快在哪里?今天正好比较闲,就拿来跑一跑,供大家参考(但其实意义不大),代码如下所示: #include<iostream> #include<time.h
阅读全文
摘要:例如 SimpleBlobDetector::Params ¶meters = SimpleBlobDetector::Params(); //这样写是因为,在SimpleBlobDetector类中又有Params这个结构体的定义,如下所示: //public:: /* struct: C
阅读全文
摘要:标题是废话,是我之前一直理解错了。 例如 vector<int> test(5); test.push_back(1); //这时test的大小就变成6了。、 我还以为会先填满没有初始化的5个大小。。。
阅读全文
摘要:主要注意它们的优先级都很高,且都是左结合的,不同在于点操作符操作的是对象,箭头操作符操作的是指针,且都能被其对应的类型的数值右值赋值。 以下是例子: #include<iostream> using namespace std; struct Point{ double x,y; }; int ma
阅读全文
摘要:有一个问题,那就是既然指针都是4字节,为什么要有不同类型的指针,只有一个不就好了吗? 原因有两个: 1.为了地址增量的方便 看这个例子 #include<iostream> using namespace std; int main(){ double b = 13; double *p_b = &
阅读全文
摘要: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 }; /*.
阅读全文
摘要:空悬指针 简单地说,空悬指针是对象的指针的生存周期比对象更长所导致的,也就是说,对象销毁、删除了,不存在了,指针仍然存在,这时这个指针就成了空悬指针。 当对象被析构、删除时,如果指向它的指针没有被同时修改,那么指针仍然会指向那块内存(但是那块内存已经没有东西了)。系统此时可能会重新分配这块已经fre
阅读全文
摘要:C++ double型不能实施%操作符,作为除数被除数都不可以,但可以用fmod函数,则作为除数被除数都可以,即 fmod = numer - tquot * denom //tquot 是除法结果向“下”取整(向0的方向)的结果,denom是除数 一个例子是 /* fmod example */
阅读全文
摘要:#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
阅读全文
摘要:1.位运算 位运算可以有效改善乘除法比较慢的问题,同时,用除法可以避免double型变量,因为一个整数除以某个数就可以变成小数,当然,这里的前提是要是2的整数次幂才好做除法,同时要能忍受一定的精度损失。
阅读全文
摘要:#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
阅读全文
浙公网安备 33010602011771号