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

一台服务做两个网站关键词林俊杰

一台服务做两个网站,关键词林俊杰,网站网页,做咖啡网站1. 默认构造函数:对象的"出厂设置" 什么是默认构造函数? 没有参数的构造函数当你没有定义任何构造函数时,编译器自动生成用于创建对象时不传递参数的情况 class Smartphone { public:// 成员初始化方法一: 函数体内初始化Smartp…

1. 默认构造函数:对象的"出厂设置"

什么是默认构造函数?

  • 没有参数的构造函数
  • 当你没有定义任何构造函数时,编译器自动生成
  • 用于创建对象时不传递参数的情况
class Smartphone {
public:// 成员初始化方法一: 函数体内初始化Smartphone() {  // 默认构造函数storage = 128;  // 默认存储容量brand = "Unknown";cout << "手机已激活!" << endl;}// 成员初始化方法二: 初始化列表// 默认构造函数使用初始化列表Smartphone() : storage(128),     // 初始化列表语法brand("Unknown")  // 成员变量直接初始化{cout << "手机已激活!" << endl;}// 正确版本:带参数构造函数Smartphone(int storageVal, string brandVal) : storage(storageVal),  // 用参数初始化成员变量brand(brandVal)       // 避免命名冲突{cout << "手机已激活!" << endl;}private:int storage;string brand;
};// 使用示例
Smartphone myPhone;  // 调用默认构造函数

重要特性

  • 如果定义了其他构造函数,编译器不再生成默认构造
  • 可以强制生成默认构造:ClassName() = default;

2. 重载构造函数:对象的"定制服务"

为什么需要重载?

  • 提供不同的初始化方式
  • 适应不同场景的需求
class Pizza {
public:// 基础款:只指定尺寸Pizza(int size) : size(size), topping("cheese") {}// 豪华款:指定尺寸和配料Pizza(int size, string top) : size(size), topping(top) {}// 套餐款:包含饮品Pizza(int size, string top, string drink) : size(size), topping(top), drink(drink) {}private:int size;       // 英寸string topping;string drink;
};// 创建不同披萨
Pizza basic(12);                     // 基础款
Pizza deluxe(14, "pepperoni");       // 豪华款
Pizza combo(16, "veggie", "cola");   // 套餐款

最佳实践

  • 使用初始化列表提高效率
  • 避免重复代码,可以相互调用

3. 拷贝构造函数:对象的"克隆技术"

核心作用

  • 用已有对象创建新对象
  • 控制拷贝过程,避免浅拷贝问题
class GameSave {
public:GameSave(const GameSave& other) {// 深度拷贝动态内存data = new int[100];memcpy(data, other.data, 100*sizeof(int));cout << "存档已克隆!" << endl;}private:int* data;  // 动态分配的存档数据
};// 使用场景
GameSave original;
GameSave backup(original);  // 调用拷贝构造

三大调用时机

  1. 对象直接赋值初始化
  2. 函数参数传递对象
  3. 函数返回对象

4. 赋值运算符:对象的"身份转移"

与拷贝构造的区别

  • 作用在已存在的对象
  • 使用=运算符时触发
class Student {
public:// 赋值运算符重载Student& operator=(const Student& other) {if(this != &other) {  // 防止自赋值age = other.age;name = other.name;}return *this;  // 支持链式赋值}private:int age;string name;
};// 使用示例
Student a, b;
a = b;  // 调用赋值运算符

关键要点

  • 必须处理自赋值(a = a)
  • 通常返回引用以支持连续赋值
  • 与拷贝构造函数配合实现完整拷贝控制

总结对比表

构造函数类型调用时机典型用途示例代码
默认构造函数对象无参创建初始化默认值MyClass obj;
重载构造函数带参数创建对象多种初始化方式MyClass(42, "X")
拷贝构造函数对象复制初始化深度拷贝资源MyClass obj2(obj1)
赋值运算符已存在对象赋值资源安全转移obj2 = obj1;

掌握这四类构造函数,就像获得对象创建的"四把钥匙",能让你:

  1. 控制对象的诞生方式
  2. 确保资源的正确管理
  3. 构建更安全高效的C++程序
http://www.dtcms.com/wzjs/123993.html

相关文章:

  • 营销型网站建设公司如何做平台推广
  • 一个单位网站被黑该怎么做网络营销推广平台有哪些
  • 网站后台登陆不进去是怎么回事百度推广在线客服
  • 网站建设技巧求职seo
  • 如何看还在建设的网站seo数据优化
  • 宝安网站建设b站推广费用一般多少
  • 上海网站建设 微信开发公司哪家好百度网盘下载
  • 如何在阿里云上做网站网站制作教程视频
  • 网站访客qq获取中国最新消息
  • 织梦网站做自适应seo推广系统
  • 怎样建网站买东西武汉百度搜索优化
  • 十里河网站建设自动友链网
  • 网站检索功能怎么做呢facebook海外推广
  • 如何制定网站建设规划互联网营销怎么赚钱
  • 免费建网站讨论网络整合营销4i原则是指
  • 不用代码做网站的工具推广工作的流程及内容
  • 网站建设算不算固定资产百度没有排名的点击软件
  • 网站qq链接怎么做人民日报今日头条新闻
  • 云服务器可以做视频网站吗杭州排名推广
  • php新闻网站源码网络营销的方法是什么
  • 东莞市微网站官方网站最近最新新闻
  • 做网站需要哪几个板块企业seo培训
  • 沈阳网站建设开发百度建站多少钱
  • 打代码怎么做网站竞价排名的弊端
  • 山东德州网站建设哪家便宜seo是啥意思
  • 化妆品营销型网站模板推广公司好做吗
  • 关于网站建设的论坛百度网盘资源链接入口
  • php网站开发应具备能力360收录提交
  • 制作商业网站宣传软文模板
  • 网站建设玖金手指花总企业建站都有什么网站