C++从放弃到入门
文章平均质量分 73
致那些曾经喜欢做其他事而放弃C++,最后又转战C++的人
Type真是太帅了
望崦嵫而勿迫兮,恐鹈鴂之先鸣。
展开
-
C++ 子类父类的相互转换
我们都知道,实现子类到父类的转换比较简单,但如何实现父类到子类的转换呢?现有一个场景如下,假设我有一个类,里边存有海量的数据作为成员变量,例如cv::Mat等等,占用内存大小较大,可能以M或G计,我们想要对其的若干个对象操作,例如排序等等,该操作仅会使用他的部分成员变量,比如时间戳(double)、类型(字符串)、大小(size_t)等等,并且这些成员变量占内存较小,如果直接使用该类进行操作,那么频繁地交换、储存临时变量将占内存比较大,其中一个思路是将其改造为子类,其父类仅有需要进行操作的成...原创 2021-08-01 01:35:42 · 8619 阅读 · 0 评论 -
C++ 万能指针void *实现任意类型的数据存储(下)
有抖音总共20秒的视频分成三段内味了。好的,书接上文,如果传入的T data,本身是个临时对象,或者智能指针等等,有可能传过来不久就病逝了,那么咱们的void *指针就有问题了。也没想到好的思路,暂时的唯一的解法就是拷贝一份数据data_copy,然后咱们咱们管理这个data_copy就可以了,data要死要活和咱噎没关系了,为了方便管理,同时把普通指针升级到智能指针。那么怎么拷贝任意类型的数据呢?在这里分三种情况,也可以看作是两种。对于普通变量,或者是对象,直接data_copy=data原创 2021-07-28 01:17:31 · 1443 阅读 · 0 评论 -
C++ 万能指针void *实现任意类型的数据存储(上)
这几天,在设计任意类型的数据存储、管理类时,被一个问题卡住了很久,即如何设计一个类,任意类型可以转化到它,并且它也可以根据需要转回去呢? 后者好说,前者猛地一看,这不用template就搞定了吗,然而,并没有这么简单。比如我们用类模板T作用于我们的类,假设叫Data,任意类型的数据存在变量data中:template <class T>class Data {public: ...private: T data;};但是,这样做,...原创 2021-07-28 00:40:43 · 3274 阅读 · 2 评论