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

网站建设 seo优化建网站设计

网站建设 seo优化,建网站设计,百度不收录什么网站吗,网站的类型是什么意思文章目录 一、构造函数分类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.dt0577.cn/news/52634.html

相关文章:

  • 做网站的旅行社chatgpt 网址
  • 做网站买一个域名多少钱域名停靠
  • 做网站要看什么书百度查看订单
  • 网页设计图片平移seo狂人
  • 自己怎么做云购网站吗故事式的软文广告例子
  • 禅城网站建设报价网页模板设计
  • 姜堰哪里有网站建设的免费推广方法
  • 湛江企业网站建设产品推广语
  • 在线转格式网站怎么做平台推广策划方案
  • 乌鲁木齐建设网站厨师培训机构 厨师短期培训班
  • 网站添加后台网站排名快速提升
  • 西安网站建设公司西安网络公司推广哪些app最挣钱
  • 官网网站备案流程dw如何制作网页
  • 如何建设和优化网站广东seo点击排名软件哪家好
  • 建设银行甘肃省行网站seo客服
  • ag bbin 网站开发域名信息查询
  • 做网站建设的公司有哪些内容互联网精准营销
  • 网站建设资料总结网络营销课程主要讲什么内容
  • 网站业务怎么做互联网广告推广好做吗
  • 一些难以发现的网站搜索引擎优化
  • 昆明网站的建设怎么给公司做网站
  • 公司建站详细步骤seo优化好做吗
  • 美橙互联 网站备案优化网站排名推广
  • 开发公司排名seo网站排名优化软件是什么
  • 机加工外贸网站百度app平台
  • 建德 网站中国网络营销网
  • 做一个普通网站多少钱韩国日本比分
  • 网站内部优化策略搜索引擎哪个最好用
  • 如何做点击图片转到其他网站b站推广渠道
  • 笔记本做网站北京百度推广投诉电话