4.2 父类之类智能指针转换 C++中是允许裸指针,因此裸指针之间转换方法同C语言指针强转,智能指针转换不能通过上述方法进行强转,必须通过库提供转换函数进行转换。 C++11的方法是:std::dynamic_pointer_cast;boost中的方法是:boost::dynamic_pointer_cast #include #include #include #include class Base { public :...
01_C语言提高_day02_14_指针做参数输入输出特性_rec是传智黑马C/C++第13期教程的第382集视频,该合集共计736集,视频收藏或关注UP主,及时了解更多相关视频内容。
子类转换为父类:向上转型,使用dynamic_cast(expression),这种转换相对来说比较安全不会有数据的丢失; 父类转换为子类:向下转型,可以使用强制转换,这种转换时不安全的,会导致数据的丢失,原因是父类的指针或者引用的内存中可能不包含子类的成员的内存。 ★模板的实例化和具体化 // #1 模板定义 template<class T> st...
摘要:关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。 多态 函数重载(overload) 相同的作用域(在同一个类中); 函数名字相同、参数(类型或个数)不同; virtual关键字可有可无; 隐 阅读全文 ...
5.智能指针的本质是什么,它们的实现原理是什么? 智能指针本质是一个封装了一个原始C++指针的类模板,为了确保动态内存的安全性而产生的。实现原理是通过一个对象存储需要被自动释放的资源,然后依靠对象的析构函数来释放资源。 6.匿名函数的本质是什么?他的优点是什么? 匿名函数本质上是一个对象,在其定义的过程中会...
这是《Effective C++》中第7条原则,其内容是在具有多态用途的父类中应该使用virtual析构函数。 首先要知道啥是多态。我就好说直白的,显得没有深度的东西。多态的一种体现就是通过父类的指针指向不同的子类来实现不同的功能,从而达到接口重用的目的。在这种情况下用作多态的父类往往具有至少一个virtual成员函数留给...
6.智能指针 7多线程 8静态断言以及调试技能的要求 CPP结构体 QT应用于类以及类的常识 递归汉诺塔 类的常识共用体实现一个类的特征 面向过程与面向对象的编程模式 构造与析构 画图 静态成员函数成员变量类在内存的存储默认参数 拷贝构造deletedefault以及深浅拷贝 类的成员函数与constmutable 类嵌套指针必须逐层初始化...
智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放。 (注:不能将指针直接赋值给一个智能指针,一个是类,一个是指针。) 常用的智能指针:智能指针在C++11版本之后提供,包含在头文件中,主要是shared_ptr、unique...
}void_fB(){//子类的同名函数printf("_B:_fun()\n"); }voidtest(){//测试C++的继承和多态A a;//定义一个父类对象 aB b;//定义一个子类对象 bA* p1 = &a;//定义一个父类指针指向父类的对象p1->func();//调用父类的同名函数p1= &b;//让父类指针指向子类的对象p1->func();//调用子类的...
fork()之后,操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他们更像兄弟关系,这2个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整拷贝,指令指针也完全相同,但只有一点不同,如果fork成功,子进程中fork的返回值是0,父进程中fork的返回值是子进程...