上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: B*这个类型会被当成A*来访问。所以调用的是A的print。 因为这个寻址,不是用虚表寻址,而是编译器做的静态绑定。 阅读全文
posted @ 2019-03-26 14:49 newbird2017 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 把子类中仅仅继承而来的成员,赋值给父类。 但是,不会改变虚表!因为这个obj的类型没变。 阅读全文
posted @ 2019-03-26 14:43 newbird2017 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 可以看到,A类的结构就是一个内存里面存了一个i,没有其他多余的东西。 B类在继承的基础上自己定义了一个j,实现中也就是在i后面追加了一个j。 阅读全文
posted @ 2019-03-26 14:33 newbird2017 阅读(117) 评论(0) 推荐(0) 编辑
摘要: int * &p; p是一个引用,被引用的是一个int*指针。 阅读全文
posted @ 2019-03-25 20:06 newbird2017 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1、const成员函数,和 非const成员函数,可以构成重载。 2、const成员变量是可以的,而且初始化必须要在参数化列表初始化。 3、int f(int &x) { cout << x << endl; } f(3*3); 这样是不行的,无法引用一个临时变量? 临时变量无法做左值。 阅读全文
posted @ 2019-03-25 19:55 newbird2017 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 也就是在a.h中,需要有这样的声明: void f(int x , int y = 0); 然后在a.cc中,不要有默认参数的声明。 void f(int x, int y){} 这样子。不能两处同时写默认参数。 因为默认参数是给调用者看的,所以放在头文件中。 而如果放在cpp文件中,头文件中没有的 阅读全文
posted @ 2019-03-22 18:37 newbird2017 阅读(977) 评论(0) 推荐(1) 编辑
摘要: 只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了。 静态函数成员也是如此?经过代码验证,确实如此。 阅读全文
posted @ 2019-03-22 18:10 newbird2017 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1、形参和实参:编译器并没有规定实参的求值顺序。 类似下面的代码,其行为是未定义的: 2、变量的初始化: 如果内置类型的变量,在定义时候没有初始化,那么它的值由定义的位置决定。 全局变量会被默认初始化为0,局部变量将不被初始化。 3、局部静态对象:在第一次经过变量定义的时候才初始化,到程序退出才销毁 阅读全文
posted @ 2019-03-05 19:27 newbird2017 阅读(102) 评论(0) 推荐(0) 编辑
摘要: C++实在是博大精深!之前总不想读厚厚的C++ Primer。 然而,现在的水平真的只是初学者!只是因为写的代码太简单,所以没有用到一些特性。可以说还是门外汉! 写笔记! 阅读全文
posted @ 2019-03-05 16:44 newbird2017 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 纯小白记录下腾讯的ncnn框架源码的学习。纯粹写给自己看的,不保证正确性。 Mat 类似于 caffe中的blob,是一个张量的存储结构体。 一、数据成员: 1、void * data 多维数据按一位数组来存储。并且需要是16字节对齐的。 2、int * refcount *refcount表示这个 阅读全文
posted @ 2018-09-29 10:05 newbird2017 阅读(4042) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页