文章 2023-10-27 来自:开发者社区

C++进阶 特殊类的设计

设计一个类不能被拷贝我们的拷贝只会发生在两个场景当中拷贝构造函数赋值运算符重载所以说我们只需要让类失去 或者说不能使用这两个函数即可这里有两个解决方案在C++98中我们将拷贝构造函数只声明不定义 并且将其访问权限设置为私有即可class CopyBan { // ... private: CopyBan(const CopyBan&); CopyBan& operat...

C++进阶 特殊类的设计
文章 2023-10-27 来自:开发者社区

C++进阶 智能指针(下)

定制删除器我们在上面试验的代码全部都是new的单个元素 在这种环境下没有析构没有暴露出问题可以一旦我们使用 new [] 情况就复杂起来了 如下图假设A类定义出来的对象大小为20个字节 new五个对象 那么我们实际开辟的空间为64字节 前面四个字节会存放着我们开辟了对象的个数 (int类型存放)那么此时我们就不能简单的调用delete了 我们还要考虑指针偏移的问题这个时候就到我们的定制删除器上场....

C++进阶 智能指针(下)
文章 2023-10-27 来自:开发者社区

C++进阶 智能指针(上)

为什么会存在智能指针我们首先来看下面的这段代码int div() { int a, b; cin >> a >> b; if (b == 0) throw invalid_argument("除0错误"); return a / b; } void func() { int* p1 = new int; int* p2 = new int;...

C++进阶 智能指针(上)
文章 2023-10-24 来自:开发者社区

『C++ - 模板』之模板进阶

模板进阶非类型模板参数类型模板参数与非类型模板参数的不同类型模板参数非类型模板参数 类型模板参数一般用来设置模板的类型; 而非类型模板参数默认为整形常量; 同时作为模板参数它们都可以进行定义缺省值;(同时,由于是整型常量,所以只能作为模板参数而不能再其他地方再进行赋值,因为左值不能被修改,而N为整形常量为左值)#include<iostream> using namespace st....

『C++ - 模板』之模板进阶
文章 2023-10-23 来自:开发者社区

C/C++指针进阶全(保姆级教学)

  前面写过指针进阶的一部分,没有看过的可以点击指针进阶详解,今天我给大家带来后半部分,以及对于前面内容的一些复习。1.复习1.1字符指针这里我们有创建字符指针,以及利用const修饰字符指针,以及不常用的访问方式,代码如下:#include<stdio.h> int main() { char a = 'w'; char* p = &a; printf...

文章 2023-10-18 来自:开发者社区

[C++随想录] 模版进阶(下)

类模板的特化函数模版的特化 可以用 函数重载 代替, 难道类模版的特化 也可以用 类的重载 来代替?打你一耳光哦, 你听过类的重载吗~~当然不行的啦类模板的特化分为两种, 全特化 和 偏特化1. 全特化全特化, 顾名思义, 是 对类模板中的所有参数都 确定化template<class T1, class T2> class Date { public: Date() { ...

文章 2023-10-16 来自:开发者社区

[C++随想录] 模版进阶(上)

模版中 class 与 typename一般情况下, 我们定义一个模版, 模版中的 class/ typename 的意义是一样的.但是, 有一种情况除外template<class Container> void Print(const Container& v) { Continer::iterator it = v.begin(); while (it != v...

[C++随想录] 模版进阶(上)
文章 2023-10-11 来自:开发者社区

C++进阶之一篇文章教会你什么是map和set(下)

6.set观察器和操作成员函数Observerskey_comp(返回键的比较对象):key_compare key_comp() const;返回一个键的比较对象,用于比较容器中键的大小关系。value_comp(返回值的比较对象):value_compare value_comp() const;返回一个值的比较对象,用于比较容器中的值的大小关系。Operationsfind(查找元素):i....

C++进阶之一篇文章教会你什么是map和set(下)
文章 2023-10-11 来自:开发者社区

C++进阶之一篇文章教会你什么是map和set(上)

序列式容器和关联式容器序列式容器:序列式容器是一组用于存储数据的容器,其中的数据按照它们在容器中的位置进行存储和访问。序列式容器提供了对元素的线性访问和操作,其主要特点包括:线性存储: 序列式容器按照元素在容器中的插入顺序线性存储。元素在容器中的位置是固定的,与键值无关。支持重复元素: 序列式容器允许存储重复的元素,同一个值可以出现多次。提供随机访问: 序列式容器支持随机访问,可以通过索引或迭代....

C++进阶之一篇文章教会你什么是map和set(上)
文章 2023-10-11 来自:开发者社区

C++进阶之多态(下)

多态的原理1.虚函数表sizeof(Base)是多少?class Base { public: virtual void Func1() { cout << "Func1()" << endl; } private: int _b = 1; };通过观察测试我们发现b对象是8bytes,除了_b成员,还多一个__vfptr放在对象的前面(注意有些平...

C++进阶之多态(下)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问