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

怎么建立一个公司网站在线编辑

怎么建立一个公司网站,在线编辑,下载安装百度一下,wordpress如何更新缓存文章目录 一、构造函数分类1、构造函数分类简介2、构造函数分类代码分析无参构造函数有参构造函数拷贝构造函数 二、代码示例 - 三种类型构造函数定义与调用 一、构造函数分类 1、构造函数分类简介 C 构造函数可以分为以下几类 : 无参构造函数 : 最简单也是默认的构造函数 , 函…

文章目录

  • 一、构造函数分类
    • 1、构造函数分类简介
    • 2、构造函数分类代码分析
      • 无参构造函数
      • 有参构造函数
      • 拷贝构造函数
  • 二、代码示例 - 三种类型构造函数定义与调用





一、构造函数分类




1、构造函数分类简介


C++ 构造函数可以分为以下几类 :

  • 无参构造函数 : 最简单也是默认的构造函数 , 函数没有参数 , 如果创建一个对象 , 没有传入参数 , 调用的就是该类型的 构造函数 ;
  • 有参构造函数 : 带参数的 构造函数 , 创建 实例对象 时 , 为成员变量提供初始值 ;
  • 拷贝构造函数 : 拷贝现有 实例对象 , 并以此拷贝的副本为数据 创建一个新的 实例对象 , 相当于创建了一个现有实例对象的副本 , 参数中包含 一个 相同类型 实例对象 引用 ;

2、构造函数分类代码分析


定义成员变量 : 下面的简介示例中是以该成员变量为基础进行赋值的 ;

public:int m_age;char* m_name;

无参构造函数


无参构造函数 : 只负责为指针类型的成员变量分配内存 , 并赋值一个初始值 , 没有具体的赋值信息 , 该初始化只能为 成员变量 赋值一个默认值 ;

// 无参构造函数
Student()
{// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if(m_name != NULL){strcpy_s(m_name, 5, "name");}// 为 m_age 成员设置初始值m_age = 0;cout << "调用无参构造函数" << endl;
}

下面的代码 , 是自动调用无参构造函数 , 创建 实例对象 的方法 ;

	// 调用无参构造函数Student s1;// 打印 Student s1 实例对象值cout << "name : " << s1.m_name << " , age : " << s1.m_age << endl;

有参构造函数


有参构造函数 : 可以将 为 成员变量 赋值的数据放在 构造函数 参数中 , 传递进来 , 并在 构造函数 中 , 为 成员变量 赋值具体的值 ;

此处需要注意的是 , 这里传入的是 C 语言中的字符串 , 也就是 char * 类型的指针 , 传入后拷贝字符串时 , 需要判定字符串的长度 ;

// 有参构造函数
Student(int age, const char* name)
{// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if (m_name != NULL){strcpy_s(m_name, length, name);}// 为 m_age 成员设置初始值m_age = age;cout << "调用有参构造函数" << endl;
}

下面的代码 , 使用了 2 种方法 , 手动调用了 有参构造函数 ;

// 调用有参构造函数
Student s2 = Student(18, "Tom");
// 打印 Student s1 实例对象值
cout << "name : " << s2.m_name << " , age : " << s2.m_age << endl;

有参构造函数有很多调用方法 , 下一篇博客详细分析每种调用方法的作用 ;


拷贝构造函数


拷贝构造函数 : 拷贝构造函数 也是 有参构造函数 中的一种 , 传入的是 相同类型的 常量引用 , 该引用指向的内容在函数内不可修改 ;

在 " 拷贝构造函数 " 中 , 主要读取 现有 实例对象 中每个 成员变量的值 , 将其赋值给 新创建的 实例对象 中的每个成员变量值 ;

新创建的 实例对象 , 与原来的 实例对象 只是值相同 , 数据地址完全不同 , 没有引用关系 ;

	// 拷贝构造函数Student(const Student& obj){// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if (m_name != NULL){strcpy_s(m_name, sizeof(obj.m_name), obj.m_name);}// 为 m_age 成员设置初始值m_age = obj.m_age;cout << "调用拷贝构造函数" << endl;}




二、代码示例 - 三种类型构造函数定义与调用



在下面的代码中 , 分别在 Student 类中定义了

  • 无参构造函数
  • 有参构造函数
  • 拷贝构造函数

分别调用了上述三种类型的 构造函数 ;


完整代码示例 :

#include "iostream"
using namespace std;class Student
{
public:// 无参构造函数Student(){// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if(m_name != NULL){strcpy_s(m_name, 5, "name");}// 为 m_age 成员设置初始值m_age = 0;cout << "调用无参构造函数" << endl;}// 有参构造函数Student(int age, const char* name){// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if (m_name != NULL){strcpy_s(m_name, sizeof(name), name);}// 为 m_age 成员设置初始值m_age = age;cout << "调用有参构造函数" << endl;}// 拷贝构造函数Student(const Student& obj){// 为 m_name 成员分配内存m_name = (char*)malloc(100);// 为 m_name 成员设置字符串值if (m_name != NULL){strcpy_s(m_name, sizeof(obj.m_name), obj.m_name);}// 为 m_age 成员设置初始值m_age = obj.m_age;cout << "调用拷贝构造函数" << endl;}~Student(){// 销毁 name 指向的堆内存空间if (m_name != NULL){free(m_name);}cout << "调用析构函数" << endl;}public:int m_age;char* m_name;
};int main()
{// 声明 Student 类型实例对象// 调用无参构造函数Student s1;// 打印 Student s1 实例对象值cout << "name : " << s1.m_name << " , age : " << s1.m_age << endl;// 手动调用有参构造函数// 直接调用构造函数会产生匿名对象, 涉及到该匿名对象的生命周期Student s2 = Student(18, "Tom");// 打印 Student s1 实例对象值cout << "name : " << s2.m_name << " , age : " << s2.m_age << endl;// 调用拷贝构造函数Student s3 = Student(s2);// 打印 Student s3 实例对象值cout << "name : " << s3.m_name << " , age : " << s3.m_age << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

调用无参构造函数
name : name , age : 0
调用有参构造函数
name : Tom , age : 18
调用拷贝构造函数
name : Tom , age : 18
Press any key to continue . . .

在这里插入图片描述

http://www.yayakq.cn/news/339647/

相关文章:

  • 让别人做网站需要注意什么问题长沙com建站网站设计
  • 知识付费网站搭建外包业务
  • 凡科建设网站安全吗百度反馈中心
  • 湛江网站制作建设教育培训网站建设ppt模板
  • 揭阳网站免费建站郑州网站建设怎么样
  • 大良网站设计价格wordpress如何设置字体大小
  • 织梦网站安装视频教程seo营销推广
  • 网站英语苏州网页设计费用
  • 优质的菏泽网站建设官方网站怎么找
  • 网站建设文翻译工作室申泽seo
  • 网站建设商标保护简述对网站进行评析的几个方面.
  • 端午节网站建设结合实际
  • 重庆建设工程安全管理局网站营销型网站策划书
  • 国外域名注册网站海宁高端高端网站设计
  • 企业形象设计方案资阳市网站seo
  • 网站交互技术软件维护有哪些内容
  • 上海建设工程标准与造价信息网站建筑施工企业中是应急救援领导
  • cms是什么意思的缩写百度seo怎么查排名
  • 网站如何引导客户在哪个网站注册域名
  • 郑州公共住宅建设投资有限公司网站wordpress 获取页面列表
  • 设计网站建设书南昌php网站开发笔试题
  • 迅雷之家是迅雷做的网站吗旅游网站开发的需求
  • 网站建设最简单的教程安徽建站优化
  • 网站建设网络公司免费个人logo设计
  • 59zwd一起做网站广州网站建设优化公司
  • 企业电商网站建设wordpress 空白框架
  • shopify做全品类网站杭州劳保网站制作
  • 揭阳网站制作计划如何做局域网网站
  • 做网站需要加班吗做网络推广要做网站吗
  • 搜狐快站怎么样wordpress 显示微信二维码