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

娱乐平台类网站怎做关键词市场推广策略 包括哪些

娱乐平台类网站怎做关键词,市场推广策略 包括哪些,国外网站的分析工具有哪些,东台专业做网站1、类的特殊成员函数的总结(3-2-1) 构造函数(三个构造): 普通构造函数:用于创建对象并初始化其成员。拷贝构造函数:用已存在的对象创建新对象,进行深拷贝(若有资源管理时…

1、类的特殊成员函数的总结(3-2-1)

  • 构造函数(三个构造)
    • 普通构造函数:用于创建对象并初始化其成员。
    • 拷贝构造函数:用已存在的对象创建新对象,进行深拷贝(若有资源管理时需自定义)。
    • 移动构造函数:以右值引用为参数,转移资源所有权(如指针),避免不必要的深拷贝,提高效率。
  • 赋值函数(两个赋值)
    • 普通赋值函数:实现对象间的赋值操作(需处理自赋值、深拷贝等情况)。
    • 移动赋值函数:通过右值引用转移资源,避免深拷贝开销,通常配合转移构造函数实现资源管理优化。
  • 析构函数(一个析构):用于对象生命周期结束时释放资源(如动态分配的内存、文件句柄等),确保资源不泄漏。

2、 移动赋值函数为什么不加const

拷贝赋值函数 MyString& MyString::operator=(const MyString& ob) 参数加 const,是为了:

  • 防止意外修改原对象:拷贝赋值仅复制原对象数据,不希望修改原对象,const 可避免函数内误操作修改原对象。
  • 提高通用性:能接受常量对象作为参数,若不加 const,则无法对常量对象进行拷贝赋值操作。

移动赋值函数 MyString& operator=(MyString&& ob) 不加 const:

  • 移动语义的核心是转移资源所有权,需要修改被移动对象(如将其内部指针置空,避免后续重复释放资源)。
  • 若参数加 const,则无法修改被移动对象,导致移动语义无法实现。

3、重载与覆盖

重载(Overloading)​

发生在同一作用域内(如同一个类中),允许存在多个同名函数,但参数列表必须不同​(参数类型、个数或顺序不同)

class Example {
public:void func(int a) { /*...*/ }       // 重载版本1void func(double b) { /*...*/ }    // 重载版本2(参数类型不同)void func(int a, int b) { /*...*/ } // 重载版本3(参数个数不同)
};
  • 返回值类型无关​:仅返回值不同不能构成重载
  • 编译时静态多态​:编译器根据调用时的实参类型和数量选择匹配的函数
  • 无虚函数要求​:普通成员函数即可重载

覆盖(Overriding)

发生在继承关系中​(派生类与基类之间),派生类重新定义基类的虚函数,要求函数签名(名称、参数列表、返回类型)完全一致

class Base {
public:virtual void show() { /*...*/ }  // 基类虚函数
};class Derived : public Base {
public:void show() override { /*...*/ } // 覆盖基类虚函数(C++11后推荐使用override关键字)
};
  • 必须虚函数​:基类函数需声明为virtual,否则派生类同名函数为隐藏而非覆盖
  • 运行时多态​:通过基类指针或引用调用时,根据对象实际类型决定执行哪个版本
  • 协变返回类型​:派生类返回类型可以是基类返回类型的派生类

当派生类重写基类的虚函数时,允许返回基类方法返回类型的派生类对象。​

  • Liskov替换原则​:派生类对象可替代基类对象使用
  • 隐式类型转换​:Dog* 可隐式转换为 Animal*,但反向转换需显式处理
// 基类
class Animal {
public:virtual Animal* clone() const {  // 返回基类指针return new Animal(*this);}virtual void speak() const { std::cout << "Animal sound" << std::endl; }
};// 派生类
class Dog : public Animal {
public:// 协变返回类型:返回派生类指针Dog* clone() const override {   return new Dog(*this);}void speak() const override { std::cout << "Bark!" << std::endl; }
};int main() {Animal* animal1 = new Dog();Animal* clonedAnimal = animal1->clone();  // 实际调用Dog::clone()clonedAnimal->speak();  // 输出 "Bark!"(无需类型转换)delete animal1;delete clonedAnimal;return 0;
}

若派生类定义了与基类同名但参数不同的函数(无论基类是否为虚函数),基类函数会被隐藏,而非覆盖

class Base { public: void func(int a) {} };
class Derived : public Base {void func(double b) {} // 隐藏基类的func(int),而非覆盖
};

C++11引入override关键字,强制检查派生类函数是否真正覆盖基类虚函数,避免因参数不匹配导致的隐藏错误 

4、C++支持函数重载而C语言不支持的原因

C++通过编译器对函数名进行"名称修饰(Name Mangling)"实现重载:

  • 根据函数参数类型、个数、顺序(容易忽略)生成唯一修饰名
  • 调用时通过符号表匹配正确函数实现
  • C语言不做名称修饰,要求函数名全局唯一,因此无法区分同名不同参的函数

5、函数重载注意事项

  • 必须满足参数列表差异(类型/个数/顺序)
  • 返回值类型不能作为重载依据(会导致编译错误)
  • 同名函数在不同作用域不构成重载
  • 注意隐式类型转换可能引发的二义性:
void func(int a) {}
void func(double b) {}
func(5);     // 明确调用int版
func(5.0);   // 明确调用double版
func('c');   // 调用int版(char→int隐式转换)

6、C/C++代码互调用规范

extern "C" { // C++ 调用C#include "c_header.h"
}
// cpp_code.cpp
extern "C" void cpp_func() { /*...*/ }

 在头文件中通过条件编译实现跨语言兼容:

#ifdef __cplusplus
extern "C" {
#endifvoid shared_function();#ifdef __cplusplus
}
#endif
http://www.dtcms.com/wzjs/214729.html

相关文章:

  • ps做网站大小尺寸网络推广的细节
  • 购物网站如何推广天眼查企业查询
  • 个人网站建设的目标推广哪个平台好
  • 网站模板怎样使用百度官网认证多少钱一年
  • 网站做cdn需要注意什么全国疫情地区查询最新
  • 做外贸在哪个网站好手机制作网页用什么软件
  • 建设通网站怎么样搜索引擎主要包括三个部分
  • 建设网站找哪家北京网优化seo优化公司
  • cms 网站后台内容管理系统模板个人网页制作成品
  • 网上定做衣服的网站广告联盟推广
  • 建设高校实验教学网站的作用怎么做网站教程视频
  • 做搜狗手机网站今日新闻头条
  • 合肥做网站的公司讯登网站建站价格
  • wordpress 备份还原网站排名优化怎样做
  • 网站后台与前台北京seo技术交流
  • 大气的网站源码广州白云区新闻头条最新消息今天
  • 商业网站策划书范文企业网站的域名是该企业的
  • 做网站 融资seo sem推广
  • 直播做愛网站国外seo排名关键词搜索结果
  • 做网站的排名谷歌seo招聘
  • 安康做企业网站的网站优化推广是什么
  • 从事网站建设的职业广东省自然资源厅
  • 有个做搞笑视频的网站抖音广告
  • 深圳网站设计公司排名大连网站建设费用
  • 我图网ppt免费下载百度seo关键词排名 s
  • 广东官方网站建设游戏加盟
  • 波波网站建设上海优化营商环境
  • 做艺术品展览的网站杭州搜索推广公司
  • 政府网站建设硬件seo站长常用工具
  • 网站建设毕业设计过程游戏推广代理平台