随笔分类 -  C/C++

摘要:这段代码输出: emplace_backI am being constructing push_back:I am being constructingI am being move!!!!25 0I am destorying0I am destorying25I am destorying3 阅读全文
posted @ 2017-12-30 11:01 vaevaevae
摘要:析构动作在创建时被捕获,这意味着 1. 虚析构不再是必须。 2. shared_ptr<void> 可以持有任何对象而且能够安全释放。比如 输出 derivethis is derive classthis is base class share_from_this()可以方便在类的内部获得自己的s 阅读全文
posted @ 2017-12-16 10:28 vaevaevae
摘要:今天在编译别的人写的代码时,出现 missing type specifier - int assumed. Note: C++ does not support default-int的错误。 在网上搜了一下,发现是头文件循环嵌套的问题。 之前一直以为用#ifndef就可以避免这种问题,今天才发现 阅读全文
posted @ 2017-01-02 20:27 vaevaevae
摘要:Mat_<double> temp1(10, 3); Mat_<double> mean1, cov1; temp1(0, 0) = 49; temp1(0, 1) = 7; temp1(0, 2) = 29; temp1(1, 0) = 8; temp1(1, 1) = 19; temp1(1, 阅读全文
posted @ 2016-11-22 16:20 vaevaevae 阅读(2751) 评论(0) 推荐(0)
摘要:在类中,可以重载operator new和operator delete,就像重载operator=一样。定制operator new/delete可以获得一些好处,比如更快地搜索可分配内存,产生较少的内存碎片。 除非仅分配较小的空间,STL容器使用的一般是堆内存,而堆是多个线程可共享的,所以说ST 阅读全文
posted @ 2016-04-07 13:13 vaevaevae
摘要:分析以下一段代码(vs2010编译) 1 #include<iostream> 2 using namespace std; 3 class ba 4 { 5 public: 6 double dd; 7 }; 8 class bas 9 { 10 public: 11 double d; 12 } 阅读全文
posted @ 2016-04-07 11:01 vaevaevae 阅读(1712) 评论(0) 推荐(0)
摘要:const最常用的是定义一个常量,用来代替#define的部分功能,因为#define只是单纯的文本替换,而const的变量会由编译器进行类型检查,更加安全。而且#define 会造成代码膨胀,而const常量在内存中只有一份拷贝。 注意const int *p,int const *p,int * 阅读全文
posted @ 2016-04-05 12:43 vaevaevae
摘要:引用的底层实现是通过指针来完成的,但编译器做了一些语言层面上的限制,从而产生了引用这个特性。 引用就是存在之物的另一个名字,它本身不是对象。不存在空引用(定义时就需要初始化),所以某些场合使用引用比指正更高效,因为引用肯定非空,而指针需要判断是不是空指针。 在函数传值时使用引用可以防止产生临时对象。 阅读全文
posted @ 2016-04-05 09:52 vaevaevae
摘要:static最显著的两个作用:在类中修饰成员变量,修饰成员函数。这表示这些成员变量和成员函数是属于类的,不属于某个具体实例。初始化静态成员变量在进入main函数之前进行,且初始化只进行一次(如何建立单例,就是从这里入手)。静态成员函数不可能是虚函数,但可以调用实例方法(静态成员函数接收一个实例,然后 阅读全文
posted @ 2016-04-04 23:02 vaevaevae
摘要:1 #include<iostream> 2 using namespace std; 3 4 class ba{ 5 public: 6 ba(){cout<<"ba"<<endl;} 7 virtual char* vf() const=0; 8 }; 9 10 class bas:public 阅读全文
posted @ 2016-04-04 22:05 vaevaevae
摘要:private继承的意思是“根据某物实现出”,是一种“has-a”的关系。而不像public继承那样继承了接口,是一种“is-a”的关系。 private继承一般可以通过复合来代替,但也有些情况会比复合更好 1 #include<iostream> 2 using namespace std; 3 阅读全文
posted @ 2016-04-04 12:06 vaevaevae