96SEO 2026-02-20 00:44 0
一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字

构造函数。
析构函数。
拷贝构造函数。
拷贝赋值函数。
取地址重载函数。
const取地址重载函数。
这里“默认”的意思就是你不写编译器会自动生成在C11标准中又增加了两个默认成员函数分别是移动构造函数和移动赋值重载函数
移动构造函数的生成条件没有自己实现移动构造函数并且没有自己实现析构函数、拷贝构造函数和拷贝赋值函数。
移动赋值重载函数的生成条件没有自己实现移动赋值重载函数并且没有自己实现析构函数、拷贝构造函数和拷贝赋值函数。
如果我们自己实现了移动构造或者移动赋值就算没有实现拷贝构造和拷贝赋值编译器也不会生成默认的拷贝构造和拷贝赋值。
默认生成的移动构造函数对于内置类型的成员会完成值拷贝浅拷贝对于自定义类型的成员如果该成员实现了移动构造就调用它的移动构造否则就调用它的拷贝构造。
默认生成的移动赋值重载函数对于内置类型的成员会完成值拷贝浅拷贝对于自定义类型的成员如果该成员实现了移动赋值就调用它的移动赋值否则就调用它的拷贝赋值。
要想验证默认生成的移动构造和移动赋值确实做了上述工作这里需要模拟实现一个简化版的string类类当中只编写了几个我们需要用到的成员函数。
age):_name(name),_age(age){}Person(const
}虽然Person类当中没有实现移动构造和移动赋值但拷贝构造、拷贝赋值和析构函数Person类都实现了因此Person类中不会生成默认的移动构造和移动赋值可以通过下面的代码来验证
}上述代码中用一个右值去构造s2对象但由于Person类没有生成默认的移动构造函数因此这里会调用Person的拷贝构造函数因为使用const修饰拷贝构造既能接收左值也能接收右值这时在Person的拷贝构造函数中就会调用string的拷贝构造函数对name成员进行深拷贝。
如果要让Person类生成默认的移动构造函数就必须将Person类中的拷贝构造、拷贝赋值和析构函数全部注释掉这时用右值去构造s2对象时就会调用Person默认生成的移动构造函数。
Person默认生成的移动构造对于内置类型成员age会进行值拷贝而对于自定义类型成员name因为我们的string类实现了移动构造函数因此它会调用string的移动构造函数进行资源的转移。
而如果我们将string类当中的移动构造函数注释掉那么Person默认生成的移动构造函数就会调用string类中的拷贝构造函数对name成员进行深拷贝。
要验证Person类中默认生成的移动赋值函数可以用下面的代码验证方式和上面验证移动构造的方式是一样的。
我们在模拟实现的string类的拷贝构造、拷贝赋值、移动构造和移动赋值函数中都打印了一条提示语句因此可以通过控制台输出判断是否调用了对应的函数。
由于VS2013没有完全支持C11因此上述代码无法在VS2013当中验证需要使用更新一点的编译器进行验证比如VS2019。
默认生成的构造函数对于自定义类型的成员会调用其构造函数进行初始化但并不会对内置类型的成员进行处理。
于是C11支持非静态成员变量在声明时进行初始化赋值默认生成的构造函数会使用这些缺省值对成员进行初始化。
比如
private://非静态成员变量可以在成员声明时给缺省值string
C11可以让我们更好的控制要使用的默认成员函数假设在某些情况下我们需要使用某个默认成员函数但是因为某些原因导致无法生成这个默认成员函数这时可以使用default关键字强制生成某个默认成员函数。
};这时如下代码就无法编译成功了因为Person类中编写了拷贝构造函数导致无法生成默认的构造函数因为默认构造函数生成的条件是没有编写任意类型的构造函数包括拷贝构造函数。
}这时我们就可以使用default关键字强制生成默认的构造函数如下
//强制生成默认构造函数//拷贝构造函数Person(const
默认成员函数都可以用default关键字强制生成包括移动构造和移动赋值。
在C98中可以将该函数设置成私有并且只用声明不用定义这样当外部调用该函数时就会报错。
在C11中可以在该函数声明后面加上delete表示让编译器不生成该函数的默认版本我们将delete修饰的函数称为删除函数。
例如要让一个类不能被拷贝可以用delete修饰将该类的拷贝构造和拷贝赋值。
被delete修饰的函数可以设置为公有也可以设置为私有效果都一样。
final修饰虚函数表示该虚函数不能再被重写如果子类继承后重写了该虚函数则编译报错。
比如
override修饰子类的虚函数检查子类是否重写了父类的某个虚函数如果没有没有重写则编译报错。
比如
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback