当前位置: 首页 > wzjs >正文

市场调研大赛搜索引擎优化解释

市场调研大赛,搜索引擎优化解释,七台河新闻综合频道直播,餐馆效果图网站一、首先要了解构造函数6大类【不是特性】 1. 构造函数 (Constructor) class MyClass { public:// 默认构造函数MyClass() : data(0) {}// 带参数构造函数MyClass(int val) : data(val) {}private:int data; };2. 析构函数 (Destructor) class MyClass { public:~MyClass() …

一、首先要了解构造函数6大类【不是特性】

1. 构造函数 (Constructor)

class MyClass {
public:// 默认构造函数MyClass() : data(0) {}// 带参数构造函数MyClass(int val) : data(val) {}private:int data;
};

2. 析构函数 (Destructor)

class MyClass {
public:~MyClass() {// 清理资源}
};

3. 拷贝构造函数 (Copy Constructor)

class MyClass {
public:// 拷贝构造函数MyClass(const MyClass& other) : data(other.data) {}private:int data;
};
  • 拷贝构造函数的参数只有一个且必须使用引用传参,否则 使用传值方式会引发无穷递归调用
    • 这里的理解可能比较困难。你可以想象,你使用一个带参数的函数,就要先传参再使用函数。下图的Date(const Date d)参数是另一个新的函数const Date d ,为了获得这个const Date d ,就需要构造这个const Date d ,又要传入一个const Date d,反反复复就导致递归了。
  • 调用拷贝构造的方式是 MyClass new_object(old_object)或MyClass new_object = old_object的写法 。把旧对象的传入到新的对象里。
  • 其过程,如下图
    在这里插入图片描述
  • 在这里插入图片描述

4. 拷贝赋值函数 (Copy Assignment Operator)

class MyClass {
public:// 拷贝赋值运算符MyClass& operator=(const MyClass& other) {if (this != &other) {  // 防止自赋值data = other.data;}return *this;}private:int data;
};
  • 那么如何区分拷贝构造和拷贝复制呢?
  • 如下图:
  • 在这里插入图片描述

5. 取地址重载函数 (Address-of Operator)

class MyClass {
public:// 取地址运算符重载MyClass* operator&() {return this;// 返回假地址}
};

6. const 取地址重载函数 (const Address-of Operator)

class MyClass {
public:// const 取地址运算符重载const MyClass* operator&() const {return this;// const同样返回假地址}
};

7、完整示例

#include <iostream>class Example {
public:// 1. 构造函数Example() : data(0) { std::cout << "Default Constructor\n"; }Example(int d) : data(d) { std::cout << "Param Constructor\n"; }// 2. 析构函数~Example() { std::cout << "Destructor\n"; }// 3. 拷贝构造函数Example(const Example& other) : data(other.data) {std::cout << "Copy Constructor\n";}// 4. 拷贝赋值函数Example& operator=(const Example& other) {std::cout << "Copy Assignment\n";if (this != &other) {data = other.data;}return *this;}// 5. 取地址重载Example* operator&() {std::cout << "Non-const Address-of\n";return this;}// 6. const取地址重载const Example* operator&() const {std::cout << "Const Address-of\n";return this;}private:int data;
};int main() {Example e1;          // 默认构造函数Example e2(10);      // 参数构造函数Example e3 = e2;     // 拷贝构造函数e1 = e3;             // 拷贝赋值函数Example* p1 = &e1;   // 非const取地址const Example* p2 = &e2;  // const取地址return 0;
}

关键点说明:

  1. 构造函数:对象创建时调用,可以有多个重载版本
  2. 析构函数:对象销毁时调用,用于资源清理
  3. 拷贝构造函数:用已有对象创建新对象时调用
  4. 拷贝赋值函数:已有对象间赋值时调用
  5. 取地址重载:通常不需要重载,除非需要特殊行为
  6. const版本:为const对象提供操作

二、类的新功能【11特性】

1、default

  • 强制生成默认函数的关键字default
  • 也就是运行默认实现
class MyClass {
public:MyClass() = default;                      // 默认构造函数MyClass(const MyClass&) = default;       // 默认拷贝构造MyClass& operator=(const MyClass&) = default;  // 默认拷贝赋值~MyClass() = default;                    // 默认析构函数
};

2、delete

  • 禁止生成默认函数的关键字delete
  • 也就是禁止默认实现
  • 例如,要让一个类不能被拷贝,可以用=delete修饰将该类的拷贝构造和拷贝赋值。
class CopyBan
{
public:CopyBan(){}
private:CopyBan(const CopyBan&) = delete;CopyBan& operator=(const CopyBan&) = delete;
};

3、override

  • override修饰子类的虚函数。
  • 子类继承父类虚函数时,子类是否正确重写了虚函数。没有就会编译错误。
class Base {
public:virtual void foo() { std::cout << "Base::foo\n"; }virtual void bar() const { std::cout << "Base::bar\n"; }
};class Derived : public Base {
public:void foo() override {  // 正确:重写 Base::foostd::cout << "Derived::foo\n";}// void bar() override { ... }  // 错误!签名不匹配(缺少 const)void bar() const override {     // 正确:重写 Base::barstd::cout << "Derived::bar\n";}
};

4、final

4.1、修饰类

  • 被final修饰的类叫做最终类最终类无法被继承
class NoHeritage final //被final修饰,该类不能再被继承
{//...
};

4.2、修饰虚函数

  • 表示该虚函数不能再被重写,如果子类继承后重写了该虚函数则编译报错。
class Base {
public:virtual void foo() final {  // 派生类不能重写 foostd::cout << "Base::foo\n";}
};class Derived : public Base {
public:// void foo() override { ... }  // 错误!foo 是 final
};
http://www.dtcms.com/wzjs/155604.html

相关文章:

  • quibids 网站建设如何让网站快速收录
  • 得实网站建设百度推广怎么收费标准
  • 购物网站首页制作代码web个人网站设计代码
  • 北太平庄做网站公司做网站用什么软件好
  • 域名出售后被用来做非法网站如何做好网站的推广工作
  • 山东省住房城乡建设厅查询网站首页qq代刷网站推广
  • WordPress防伪插件单页网站怎么优化
  • 企业门户网站在信息系统架构中属于哪个层次网站运营需要多少钱
  • 优建网站免费建网站
  • 营销型网站成功案例电商网站模板
  • 访问网站需要账号密码百度热搜关键词排名优化
  • 做爰网站下载西安外包网络推广
  • 西安有哪些做网站建设的公司seo关键词优化软件官网
  • 学建网站要多久百度推广优化排名怎么收费
  • 佛山门户网站建设公司怎么推广自己的店铺
  • 南宁网站建设公司排行乌鲁木齐seo
  • 青岛网站开发公司电话如何优化关键词的排名
  • 西安做网站哪里便宜关键词难易度分析
  • 用mac做网站温州seo品牌优化软件
  • 建设网站需要什么内容创建app平台
  • 百度网站安全检测平台seo怎么才能优化好
  • 六安品牌网站建设电话在线收录
  • 做微网站哪家好nba最新排名
  • 宜宾建设网站腾讯企点账户中心
  • 网站建设协服务网站排名咨询
  • 中视频自媒体平台注册seo网站关键词优化报价
  • cf租号网站怎么做的seo优化中以下说法正确的是
  • 有哪些vue做的网站互联网营销师国家职业技能标准
  • 网站建设用的服务器营销策略分析包括哪些内容
  • 导航网站怎么做鞍山seo外包