
C++
文章平均质量分 58
man_skill
这个作者很懒,什么都没留下…
展开
-
C++ 类外访问类的私有成员变量
C++ 类外访问类的私有成员变量之前一直不太清楚对象的成员变量和成员函数在内存中的占用情况,今天想要直接通过一个对象的变量名去访问其内部的成员变量,特地去看了一下对象中的内存布局。直接说结论:对于没有继承的情况,对象所占内存的大小和C结构体类似,仅需考虑内存对齐+每个基本成员变量的内存大小就计算出对象所占内存。对于有继承的情况,如果有虚函数,那么除了基本的成员变量外还会存储一个虚表指针,这个指针的位置可能在这个对象的内存的头部也可能在尾部,这个视编译器而定。派生类对象的内存大小会是父类大小加上自身原创 2021-12-25 17:08:08 · 2659 阅读 · 0 评论 -
C++ 命名空间,作用域运算符和using关键字
C++ 命名空间,作用域运算符和using关键字个人理解,极其主观,仅供参考!C++ 作用域运算符C++的作用域运算符主要起到区别作用,避免产生二义性,在不同的模块可能有相同的标识符名称,需要用::加以区分。主要用于:命名空间全局变量类(static情况,继承情况)见文章:C++作用域运算符::的用法 (360doc.com)C++ 命名空间使用命名空间实际上也是避免不同的空间内的标识符相同导致二义性,可以通过使用作用域运算符确定此标识符处于什么空间,也可以使用using nam原创 2021-06-11 10:21:08 · 456 阅读 · 1 评论 -
C++11 谈谈shared_ptr
C++11 谈谈shared_ptr(细节)个人用!十分主观!仅供参考!shared_ptr是C++11中加入的一种智能指针(其实并不够智能),其作用就是帮助我们管理在堆中开辟的空间,避免野指针等众多内存管理不当造成的问题。重点:智能指针会自动的给我们释放开辟的内存空间实际上,每种智能指针都是以类模板的方式实现的,shared_ptrshared_ptr使用了引用计数机制,也就是其类内维护了一个计数count。其之所以叫做shared,多个shared_ptr可以共同使用同一块堆内存,一旦多了原创 2021-06-11 00:46:03 · 555 阅读 · 1 评论 -
C++ 类模板的友元函数的类外实现
类模板的友元函数的类外实现C++学习中看到视频课上的友元函数的类外实现不仅要在类内部声明友元函数是一个模板函数,还要在类外再去声明,并且由于友元函数的参数是一个模板类,还要类外声明模板类。代码如下:template<class T1, class T2>class Person;template<class T1,class T2>void showPerson(Person<T1, T2>& p);template<class T1, clas原创 2021-04-10 21:30:09 · 1553 阅读 · 4 评论 -
C++ 模板类的嵌套
模板类的嵌套使用函数模板,当参数是自定义数据类型(如结构体,类)时,需要通过第三代具体化自定义数据类型来解决问题。那么对于类模板中的成员对象的数据类型也是自定义数据类型呢。实际上,只要类中包括了某个类型的成员或者方法,在实例化对象的时候就要声明数据类型。那么如果类的成员也是模板类呢。就出现了如下的嵌套:template<class T>class Nm{ T a;};template<class T>class Mn{ T find() { T p原创 2021-04-10 20:26:19 · 3347 阅读 · 0 评论