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

江苏网站备案暂住证人民日报评网络暴力

江苏网站备案暂住证,人民日报评网络暴力,龙岩网站建设公司,asp.net怎么做登录网站一、前言 在C中,接口指针或类对象的函数参数传递是一个常见的做法,特别是在需要支持多态或动态绑定时。这里将介绍如何传递接口指针或类对象作为函数参数。 二、函数参数传递的几种类型 抽象类(接口)的实例只能通过指针或引用传…

一、前言

在C++中,接口指针或类对象的函数参数传递是一个常见的做法,特别是在需要支持多态或动态绑定时。这里将介绍如何传递接口指针或类对象作为函数参数。

二、函数参数传递的几种类型

抽象类(接口)的实例只能通过指针或引用传递,不能作为值传递。具体类的实例可以通过指针、值或引用传递。指针传递和值传递都会创建对象的副本,而引用传递会直接操作原始对象。

示例代码:

#include <iostream>
// 定义一个接口类
class IMyInterface {
public:virtual void myMethod() = 0; // 纯虚函数,必须被实现
};
// 定义一个类,它实现了IMyInterface接口
class MyClass : public IMyInterface 
{
public:void myMethod() override {std::cout << "MyClass::myMethod called" << std::endl;}
};
/// <summary>
/// 指针传递:传递抽象类的实例的指针
/// </summary>
/// <param name="interfacePtr"></param>
void doSomething1(IMyInterface* interfacePtr) {interfacePtr->myMethod();
}/// <summary>
/// 错误用法,不允许使用抽象类类型作为函数参数,也就是说不能实例化。
/// </summary>
/// <param name="interfacePtr"></param>
//void doSomething2(IMyInterface interfacePtr) {
//    interfacePtr.myMethod();
//}/// <summary>
/// 引用传递 需要传递抽象类的实例对象的引用.
/// </summary>
/// <param name="interfacePtr"></param>
void doSomething3(IMyInterface &interfacePtr) {interfacePtr.myMethod();
}/// <summary>
/// 对象的指针传递
/// </summary>
/// <param name="pMyCalss"></param>
void doSomething4(MyClass* pMyCalss) {pMyCalss->myMethod();
}/// <summary>
/// 值传递:会创建myObj的副本
/// </summary>
/// <param name="myObj"></param>
void doSomething5(MyClass myObj) {myObj.myMethod();
}/// <summary>
/// 引用传递:直接操作原始对象
/// </summary>
/// <param name="myObj"></param>
void doSomething6(MyClass &myObj) {myObj.myMethod();
}int main() {MyClass obj;IMyInterface* pMyInterface = &obj;doSomething1(pMyInterface);//doSomething2(obj); 错误用法doSomething3(*pMyInterface);doSomething4(&obj); doSomething5(obj); doSomething6(obj);return 0;
}

1.抽象类(接口)的实例的指针传递

/// <summary>
/// 指针传递:传递抽象类的实例的指针
/// </summary>
/// <param name="interfacePtr"></param>
void doSomething1(IMyInterface* interfacePtr) {interfacePtr->myMethod();
}int main() {MyClass obj;IMyInterface* pMyInterface = &obj;doSomething1(&obj);doSomething1(pMyInterface);return 0;
} 

将抽象类指针作为函数参数传递。这允许函数接受任何实现了抽象类接口的类的实例。

2.抽象类(接口)的实例值传递(错误用法)

/// <summary>
/// 编译时错误,抽象类不能被实例化,不允许使用抽象类类型作为函数参数,也就是说不能实例化。
/// </summary>
/// <param name="interfacePtr"></param>
//void doSomething2(IMyInterface interfacePtr) {
//    interfacePtr.myMethod();
//}

抽象类不能被实例化,因此不能作为值传递给函数。

3.抽象类(接口)的实例的对象的引用传递

/// <summary>
/// 引用传递 需要传递抽象类的实例对象的引用.
/// </summary>
/// <param name="interfacePtr"></param>
void doSomething3(IMyInterface &interfacePtr) {interfacePtr.myMethod();
}int main() {MyClass obj;IMyInterface* pMyInterface = &obj;doSomething3(*pMyInterface);return 0;
}

将抽象类对象的引用作为函数参数传递。这允许函数直接访问和修改原始对象。

4.实例对象的指针传递

/// <summary>
/// 对象的指针传递
/// </summary>
/// <param name="pMyCalss"></param>
void doSomething4(MyClass* pMyCalss) {pMyCalss->myMethod();
}int main() {MyClass obj;IMyInterface* pMyInterface = &obj;doSomething4(&obj); return 0;
}

将具体类对象的指针作为函数参数传递。这允许函数接受任何实现了抽象类接口的类的实例。

5.实例对象的值传递

/// <summary>
/// 值传递:会创建myObj的副本
/// </summary>
/// <param name="myObj"></param>
void doSomething5(MyClass myObj) {myObj.myMethod();
}
int main() {MyClass obj;doSomething5(obj); return 0;
}

将具体类对象作为值传递给函数。这创建了一个对象的副本,因此函数内部对对象的修改不会影响原始对象。

6.实例对象的引用传递

/// <summary>
/// 引用传递:直接操作原始对象
/// </summary>
/// <param name="myObj"></param>
void doSomething6(MyClass &myObj) {myObj.myMethod();
}int main() {MyClass obj;doSomething6(obj);return 0;
}

将具体类对象的引用作为函数参数传递。这允许函数直接访问和修改原始对象。

三、注意事项

  • 当传递接口指针时,确保指针指向的对象确实实现了该接口。
  • 当传递类对象时,确保对象的状态不会因为函数的调用而受到影响,除非函数是类的成员函数。
  • 引用参数可以避免拷贝对象,提高效率。
  • 指针参数可以接受空指针,引用参数不能接受空引用。
  • 通过接口指针或类对象的传递,可以编写出更加灵活和可扩展的代码。
http://www.hkea.cn/news/534184/

相关文章:

  • 工程建设企业网站网站关键词优化应该怎么做
  • 修复wordpress青岛网站优化
  • 敦煌网站做外贸怎样网页推广怎么做的
  • 南京网站建设优化今日头条普通版
  • 网站编辑的工作职能有哪些活动营销案例100例
  • 小程序招商加盟平台我是seo关键词
  • wordpress 发帖机镇江抖音seo
  • 网站建设的小结可以发外链的论坛有哪些
  • 网站正常打开速度网店营销与推广策划方案
  • 义乌 网站制作进入百度app
  • 做外围网站赌球红树林seo基础入门免费教程
  • 绿色风格网站seo排名赚钱
  • 南宁企业免费建站百度推广营销怎么做
  • 建立个人网站的成本短视频seo营销系统
  • 深圳公司名称大全网站结构优化的内容和方法
  • 安康市代驾公司上海网站关键词排名优化报价
  • 怎么在网站上建设投票统计在线培训系统app
  • 泰州网站建设哪家好网站seo的主要优化内容
  • 洛卡博网站谁做的seo权重查询
  • 东莞网络科技公司有哪些山东网站seo
  • 网站建设需要学什么网站模板购买
  • 用html做的游戏网站关键词推广效果分析
  • 做影视网站引流正规推广平台有哪些
  • 免费下载简历模板北京seo排名厂家
  • 西昌市做网站的百度搜索排名靠前
  • 办公室装修实景拍摄图重庆seo俱乐部联系方式
  • 网站建设阶段推广计划书怎么写
  • 代做毕业设计网站现成注册网站平台
  • 电商网站开发工作计划企业网络营销策划
  • 用wps网站栏目做树形结构图网页设计代码案例