可以自己做网站卖东西网站建设属于哪个专业

张小明 2026/3/12 21:25:31
可以自己做网站卖东西,网站建设属于哪个专业,服装网站建设的目的和意义,迅雷黄冈网站推广软件目录 1 类与默认函数 2 default 和 delete 2.1 default 2.2 delete 1 类与默认函数 在 C 中声明自定义的类#xff0c;编译器都会默认自动生成一些程序员未自定义的成员函数#xff0c;这些成员函数被称为默认函数或特种成员函数 1. 无参构造函数#xff1a;创建类对象…目录1 类与默认函数2 default 和 delete2.1 default2.2 delete1 类与默认函数在 C 中声明自定义的类编译器都会默认自动生成一些程序员未自定义的成员函数这些成员函数被称为默认函数或特种成员函数1.无参构造函数创建类对象2.拷贝构造函数拷贝类对象3.拷贝赋值函数类对象赋值4.移动构造函数拷贝类对象5.移动赋值函数类对象赋值6.析构函数销毁类对象在C语法规则中一旦程序员实现了这些函数的自定义版本则编译器不会再为该类自动生成默认版本。2 default 和 delete在 C11 标准中称default修饰的函数为显式默认函数而称delete修饰的函数为删除函数或者显示删除函数。C11 引入显式默认函数和显式删除函数是为了增强对类默认函数的控制让程序员能够更加精细地控制默认版本的函数。2.1 defaultdefault用于显式地告诉编译器为成员函数生成默认实现。这通常用于那些编译器默认不会自动生成的成员函数比如自定义类型的拷贝构造函数和拷贝赋值运算符。移动操作的生成条件仅当以下三者同时成立该类未声明任何拷贝操作该类未声明任何移动操作该类未声明任何析构函数在 C11 及以后的版本如果你想在已经存在任一拷贝操作或析构函数的条件下仍然想让编译器自动生成移动操作就需要通过 default 来显示地表达这个想法class MyClass { public: // 析构函数 ~MyClass() { std::cout Destructor called std::endl; } // 拷贝构造函数 MyClass(const MyClass other) : data(other.data) { std::cout Copy constructor called std::endl; } // 拷贝赋值运算符 MyClass operator(const MyClass other) { std::cout Copy assignment called std::endl; } // 显式声明移动构造函数 MyClass(MyClass) default; // 显式声明移动赋值运算符 MyClass operator(MyClass) default; // 默认构造函数 MyClass() default; };定义默认函数的注意事项如果程序员对 C 类提供的默认函数上面提到的六个函数进行了实现那么可以通过 default 将他们再次指定为默认函数不能使用 default 修饰这六个函数以外的函数。class Base { public: Base() default; Base(const Base obj) default; Base(Base obj) default; Base operator(const Base obj) default; Base operator(Base obj) default; ~Base() default; // 以下写法全部都是错误的 Base(int a 0) default; //有参构造 Base(int a, int b) default; //有参构造 void print() default; //自定义函数 //不是移动、复制赋值运算符重载不允许使用 default 修饰 bool operator (const Base obj) default; bool operator(const Base obj) default; };2.2 delete在 C98 中的 basic_ios 像下面这样规定的templateclass charT,class traits char_traitscharT class basic_ios : publi ios_base { public: ... private: basic_ios(const basic_ios); //not defined basic_ios operator(const basic_ios); //not defined };通过将这些函数声明为private就是为了阻止客户去调用它们。但某些情况下仍然可以访问如成员函数或类的友元并使用它们这就会导致链接阶段缺少函数定义而报错。在 C11 中有更好的途径来达成效果上相同的结果使用delete将拷贝构造和拷贝赋值将其标识为删除函数。以下是 C11 中关于 basic_ios 的同一片段templateclass charT,class traits char_traitscharT class basic_ios : publi ios_base { public: basic_ios(const basic_ios) delete; basic_ios operator(const basic_ios) delete; ... };使用delete关键字和将函数声明为private看起来只是不同风格的选择但实际上是有区别的。1.使用 delete 删除的函数无法通过任何方法调用即使是成员函数或友元函数中的代码也是无法调用的。相对于 private 的做法来讲这是一种改进。2.删除函数往往会被声明为 public。这样做的好处是当客户代码尝试调用某个成员函数时C 会先校验其可访问性后校验删除状态。这么一来当客户代码尝试调用某个 private 函数编译器只会提示该函数为 private。所以把新的 delete 函数声明为 public 会得到更好的错误信息。3.任何函数都可以成为删除函数但是只有类成员函数才能被声明为 private。举例来讲如果我们有一个普通函数bool isLucky(int number)C中很多类型可以隐式转换到 int 所以会出现以下无意义的代码调用if (isLucky(a)) //ok if (isLucky(true)) //ok if (isLucky(3.14)) //ok当我们想要阻止这样的调用的时候我们可以通过delete关键字来删除对应的重载版本bool isLucky(int number); bool isLucky(char) delete; //error bool isLucky(bool) delete; //error bool isLucky(double) delete; //error4.删除函数还可以阻止那些不应该进行的模板实现。举例来讲如果你需要一个和内建指针协作的模板template typename T void processPointer(T* ptr) { // ... }而指针的类型中有两个异类一个是void*因为无法对其进行自增、自减等操作一个是char*因为它们基本上表示的是 C 风格的字符串而不是指向单个字符的指针。这时候我们可以通过删除函数来阻止对这两种类型的模板实现而这一点是 private 无法做到的。template void processPointervoid(void*) delete; template void processPointerchar(char*) delete; template void processPointerconst void(const void*) delete; template void processPointerconst char(const char*) delete;
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

兰州网站建设lzwlxcwordpress主题+清新

x-ui命令行工具是一款专为服务器管理设计的强大工具,它让服务器管理员能够通过简单的命令快速完成面板启动、配置更新、日志管理等日常操作,极大地提升了运维效率和自动化水平。 【免费下载链接】x-ui 项目地址: https://gitcode.com/gh_mirrors/xui/…

张小明 2026/3/12 16:45:30 网站建设

江阴做网站制作营业执照图片手机软件

腾讯混元大模型A13B:MoE架构引领AI效率与性能新高度 【免费下载链接】Hunyuan-A13B-Instruct-GGUF 腾讯Hunyuan-A13B-Instruct-GGUF是高效开源大模型,采用MoE架构,800亿总参数中仅130亿激活,性能媲美大模型。支持256K超长上下文&a…

张小明 2026/3/12 16:45:16 网站建设

自己怎么创建网站ssl正式申请后wordpress

PyTorch加载Qwen3-32B显存爆炸?一文讲透高效运行方案 在构建企业级AI系统时,你是否曾遇到这样的窘境:明明手握RTX 4090或A100,却连一个开源的Qwen3-32B都加载不起来?屏幕上赫然弹出“CUDA out of memory”&#xff0c…

张小明 2026/3/12 16:45:04 网站建设

屏蔽某网站怎么做wordpress一个主站多个子站

计算机毕业设计springboot毕业生就业信息管理系统的设计与实现03k1ln61 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。互联网招聘已从“信息展示”走向“智能撮合”&#xff0c…

张小明 2026/3/12 16:44:54 网站建设

重庆网站建设模板服务html个人网页制作步骤

还在为动物伙伴输出乏力而苦恼吗?是否总感觉自己的召唤兽在战斗中表现不佳?别担心,今天我们就来解锁动物伙伴的真正潜力!🚀 【免费下载链接】-Wotr-BD- 开拓者-正义之怒的剧情队友和动物伙伴的Build收集。虽说是收集&a…

张小明 2026/3/5 3:41:09 网站建设

人才网站商务网页

1、什么是 Selenium?它用于做什么? Selenium 是一个用于自动化测试的开源框架。它提供了多种工具和库,用于模拟用户在不同浏览器和操作系统上的行为,并且可用于测试网页应用程序。 2、Selenium WebDriver 和 Selenium IDE 有何区…

张小明 2026/3/5 3:41:11 网站建设