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

哈尔滨网站建设公司名字济南网站搜索引擎优化

哈尔滨网站建设公司名字,济南网站搜索引擎优化,浅议我国旅游景点网站的建设,WordPress怎么编制手机页面文章目录 一、在不同的内存中创建类的实例对象1、括号法调用构造函数2、等号法调用构造函数 二、完整代码示例 一、在不同的内存中创建类的实例对象 在上一篇博客 【C】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 ) 中 , …

文章目录

  • 一、在不同的内存中创建类的实例对象
    • 1、括号法调用构造函数
    • 2、等号法调用构造函数
  • 二、完整代码示例





一、在不同的内存中创建类的实例对象



在上一篇博客 【C++】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 ) 中 , 分析了 在 栈内存 和 堆内存 中创建对象 的 两种情况 ;

本篇博客中 , 继续分析 , 栈内存中调用 有参构造函数的 两种方法 :

  • 括号法
  • 等号法

C++ 类成员变量为 :

public:int m_age;char* m_name;

之后都是以该成员变量为参考 , 为这两个成员变量赋值 ;


1、括号法调用构造函数


首先 , 在 Student 类中, 定义两个有参的构造函数 , 之后就使用括号法调用上述构造函数 ;

	// 有参构造函数Student(int age, const char* name){// 方法体 省略cout << "调用有参构造函数" << endl;}

不推荐的用法 : 通过 Student(18, “Tom”) 方法 , 手动调用有参的构造函数 , 上述代码会产生一个匿名的 Student 实例对象 , 然后再将该 匿名对象 赋值给 栈内存中的 Student s2 变量 ;

匿名对象创建完成后 , 会立刻进行初始化 ;

	// 手动调用有参构造函数// 直接调用构造函数会产生匿名对象, 涉及到该匿名对象的生命周期Student s2 = Student(18, "Tom");

推荐的用法 : 在栈内存中创建 类的 实例对象 , 推荐使用 下面的方法 , 在声明的 栈内存变量名称后 , 直接使用括号 , 并传入构造函数的参数 ;

	// 使用 括号法 调用有参构造函数Student s4(1, "J");

调用 Student s4(1, “J”) 创建实例对象 , 相当于调用了 Student(int age, const char* name) 有参构造函数 , 然后将实例对象赋值给了 s4 变量 ;


2、等号法调用构造函数


首先 , 定义单个参数的 构造函数 ;

	// 有参构造函数Student(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 = 0;cout << "调用有参构造函数" << endl;}

使用 等号法 调用 有一个参数的 有参构造函数 ,

将 字符串 直接赋值给 Student s5 变量 , 相当于调用了 Student(const char* name) 有参构造函数 , 并将创建的 实例对象 赋值给 s5 变量 ,

这是 C++ 对 = 等号运算符的增强 ;

	// 使用 等号法 调用 有一个参数的 有参构造函数// C++ 对等号进行了功能增强Student s5 = "K";




二、完整代码示例



在下面的代码中 ,

声明 Student 类时 , 定义了 :

  • 默认无参构造函数
  • 有参构造函数 - 1 个参数
  • 有参构造函数 - 2 个参数
  • 拷贝构造函数 - 1 个参数的有参构造函数 , 函数类型是 Student(const Student& obj)

调用构造函数 创建实例对象 时 , 分别使用了

  • 直接声明 Student 变量 , 自动调用 默认无参构造函数 ,
  • 使用括号法调用 2 参数有参构造函数
  • 调用 拷贝构造函数
  • 使用等号法调用 1 参数有参构造函数

代码示例 :

#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(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 = 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 s4(1, "J");// 打印 Student s4 实例对象值cout << "name : " << s4.m_name << " , age : " << s4.m_age << endl;// 使用 等号法 调用 有一个参数的 有参构造函数// C++ 对等号进行了功能增强Student s5 = "K";// 打印 Student s4 实例对象值cout << "name : " << s5.m_name << " , age : " << s5.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 : J , age : 1
调用有参构造函数
name : K , age : 0
调用拷贝构造函数
name : Tom , age : 18
请按任意键继续. . .

在这里插入图片描述

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

相关文章:

  • 手机网站建设平台济南品牌网站建设低价
  • 怎么用云服务器做网站html网页制作作品
  • 网站建设基础资料wordpress不是博客
  • asp.net做网站头部和尾部_都用什么来实现平台网站建设网站
  • 做网站哪里比较好h5页面制作软件电脑版
  • 摄影建设网站个人做网站需要备案吗
  • 司法网站建设与维护 教材wordpress热门标签调用
  • 公司的网站建设是什么部门龙岗住房和建设局网站
  • 免费网站重生做军嫂吉首企业网站建设价格
  • 越南的网站建设我的南京网站
  • 教做flash的网站dede游戏网站源码
  • 网站微信二维码侧边栏漂浮框网站上线是前端还是后端来做
  • 南宁哪有网站建设公司做游戏需要学什么
  • 做网站IP网上销售型企业网站
  • 宁波建设商城网站个人简介网站html代码
  • tinkphp5网站开发互联网趋势发展前景
  • 二级域名对于英文网站推广有什么影响python采集数据wordpress
  • 营销网站建设创意wordpress 自定义 文章形式
  • 温州关键词优化工具怎样优化标题关键词
  • 编程的网站都有哪些wordpress让小工具支持简码
  • 唐山网站建设唐山wordpress手机字体变大6
  • 找南阳建立网站的公司小程序后台
  • 上海餐饮网站建设推广品牌平台
  • 制作网站的素材做旅游网站宣传
  • 找建网站公司电子商务网站建设及推广方案论文
  • 站长之家app下载视频网站开发用什么服务器
  • 校园网网站建设实训报告哪个网页设计培训机构好
  • 访问中国建设银行官方网站新开传奇网站180火龙
  • 山西国人伟业网站比价网站源码整站程序
  • 网站域名免费申请网站建设求职简历模板下载