`
墙头上一根草
  • 浏览: 154665 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

c++ 函数的调用,以及方法的参数形式

    博客分类:
  • c++
阅读更多

C++中 函数的调用,和java一样的,区别是java叫方法,c++叫函数。

 

c++的函数参数还可以指定默认值,如果某个参数被指定默认值,则调用程序可以不用传递这个参数的值,可以使用默认的

 

但是c++的函数的参数要比java复杂的多,主要是c++区分引用、常量以及指针,主要的区别看一下的例子以及例子的注释

 

  class Power
{
public:
    Power(void);
    ~Power(void);

    double calPower(double x,int n);

    /**计算某个数的平方--函数中用到n为 n的副本,所以函数执行不会修改n的值*/
    static int calPingFang(int n);

    /**按值传递参数--函数中用到n为 n的副本,所以函数执行不会修改n的值*/
    static int change_it(int it);

    /**按指针传递参数 不会复制指针副本,修改it指向的值,会更改.但是it本身不会修改即他指向的地址不变 */
    static int change_it(int *it);

    /**按常量指针传递参数  这个例子说明,在传入的参数把值修改为const的时候,就会阻止程序修改原来的值*/
    static int change_it(const int *it);

    /**按数组参数 可以修改数组内的值*/
    static int change_it(double num[],int value);

    /**按数组指针参数   可以修改数组内的值*/
    static int change_it(double *array,int value);

    /**按引用传递参数 按引用传递的参数 程序调用中不会修改他的值,因为引用本身就是引用对象的别名,所以一下的方法是没用的*/
    static int change_it(int& value);
    /**按常量引用传递参数*/
    static int change_it(const int& value);

    //把函数的参数指定为引用,有两个重要的作用,第一,参数不复制,函数直接调用程序中的变元
    //第二,不制作副本,会时程序执行的更快,特别参数是大而复杂的对象时

    //如果不打算在调用的函数中修改参数的值,则总是可以把函数的参数定义为const,常量参数形式,已取得程序执行的性能

    //一般来讲,使用引用参数比使用指针参数更好,只要有可能就尽量声明函数的参数为引用,但是要确定是否需要函数修改参数的值
    //如果需要修改参数的值,则用指针作为参数,则是更好的选择

    //指针和引用的唯一区别是,指针可以为空(NULL),而引用始终是某个类型的别名,除非是指针的别名为null,如果允许参数的类型为空,唯一的选择是指针
};

 

 

 

 

  • 大小: 300 KB
分享到:
评论

相关推荐

    C++函数调用过程深入分析

    函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一个函数的调用的呢?参数入栈、函数跳转、保护现场、回复现场等又是怎样实现的呢?本文将对函数调用的过程进行深入的分析和详细解释,并在VC ...

    C++自动生成函数调用关系图.rar

    1. **函数调用**:在C++中,函数是一段可重用的代码块,可以接受输入参数(如果有的话),执行特定任务,并可能返回结果。函数调用是程序中一个函数被另一个函数或主程序执行的过程。 2. **控制流**:函数调用是...

    剖析C++函数调用约定

    C++函数调用约定是编程过程中非常重要的概念,它规定了函数调用时参数传递的顺序、谁负责清理堆栈以及函数名是否需要修饰。在Visual C/C++编译器中,有四种主要的函数调用约定:__cdecl、__stdcall、__fastcall和...

    C++高效获取函数调用堆栈

    C++高效获取函数调用堆栈 在程序设计和开发过程中,出现问题是很正常的。这时候,快速找到问题所在,并确定程序的上下文环境就变得非常重要。函数调用堆栈的信息对于解决问题具有很大的帮助。传统的方法是使用 ...

    C# 调用C++DLL(函数参数包含指针)

    要使用P/Invoke,我们需要在C#中定义一个对应的接口,这个接口声明了要调用的C++函数。 1. **定义DllImport特性**:在C#中,我们需要使用`[DllImport]`特性来导入DLL,并指定其路径。例如: ```csharp [DllImport...

    c/c++中函数调用方式

    在C/C++编程语言中,函数调用方式是程序设计中的关键概念之一,它涉及到如何在函数调用过程中处理参数的传递以及栈空间的管理。根据给定的文件信息,我们可以深入探讨C/C++中几种主要的函数调用方式:__cdecl、__...

    C++中的类中函数调用

    1. **非静态成员函数调用**:这是最常见的函数调用形式,需要通过类的实例(对象)来调用,因为这些函数可能访问或修改类的私有或保护成员。 2. **静态成员函数调用**:静态成员函数不依赖于类的任何实例,可以...

    C/C++ 函数调用与函数返回值

    函数参数与函数调用  1、函数调用的作用:  ·用实参数向形式参数传递数据;  ·为获得数据参数及在函数体中声明的变量分配存储空间;  ·中断现行(调用)函数,把流程向被调用函数的入口处,开始执行被调...

    visual c++中函数调用方式浅探

    在Visual C++环境下进行软件开发时,了解不同的函数调用约定(calling conventions)对于优化程序性能、理解编译器行为以及避免潜在的错误至关重要。本文将深入探讨Visual C++中的几种主要函数调用约定:`__cdecl`、...

    lua调用C++函数

    这通常涉及到保存C++函数指针的用户数据,然后在Lua中通过元方法或特殊协议调用。 10. **调试和日志**:在集成过程中,添加适当的调试输出和日志记录有助于定位问题。可以使用`luaL_error`或自定义的错误处理函数抛...

    C#调用DLL中非托管C++函数参数类型对照

    C#调用DLL中非托管C++函数参数类型对照 在C#编程中,经常需要调用C++中的DLL类库,这就需要了解C++中的函数参数类型在C#中的对应关系。以下是基本数据类型的对照: * 一维数组:C#参数在基本类型前加ref或out,out...

    MATLAB调用C_C++函数的方法

    MATLAB 调用 C/C++ 函数的方法 MATLAB 是一个功能强大的计算软件,但有时需要调用 C/C++ 函数来实现某些功能。MATLAB 提供了一个名为 MEX 的机制,允许用户将 C/C++ 函数编译成 MATLAB 可以调用的函数。下面将详细...

    Lua调用C++函数实现

    本文将深入探讨如何在 Lua 中调用 C++ 函数,实现两者之间的交互。 首先,我们要理解 Lua 和 C++ 之间的接口是如何建立的。这主要通过 Lua 的 C API 实现,它提供了一套 C 函数供外部语言(如 C++)调用,同时也...

    C#调用C++动态库,执行回调函数并传递结构体参数

    总结来说,这个工程示例展示了C#和C++之间的深度交互,包括P/Invoke调用,回调函数的使用,以及结构体参数的传递。这需要对C#和C++的内存管理、调用约定和数据类型有深入理解。对于需要跨语言交互的开发者来说,这样...

    c++函数调用实现一元二次方程求解

    c++编程,函数调用实现一元二次方程求解。分成系数输入、方程求解、三角函数求解和结果输出四个函数,利用全局变量调用函数里面返回的一元二次方程的根在接下去的函数里继续调用。

    C++调用Java方法

    Android Studio项目,此Demo实现Java调用C++函数,然后C++函数回调Java方法、纯C++直接调用Java方法,此为github地址链接

    C++调用C函数实例详解

    C++调用C函数实例详解 前言:以前见到extern “C”这样的语句,只是简单地知道跟外部链接有关,但是没有深刻理解它的意思。 首先,为什么要使用extern “C”修饰符? C++调用其它语言的函数,由于编译器生成函数的...

    c调用C++函数

    本文将深入探讨如何实现C调用C++函数,并以QT框架为例,提供一种实现方法。 首先,了解C与C++的差异是必要的。C++是C语言的超集,它扩展了C语言的功能,引入了类、对象、模板等面向对象特性。由于C++支持名称空间和...

    自动生成函数调用关系图

    自动生成c++函数调用关系图,里面包含了所有要用到的软件,一站式服务; 通过本人亲测的使用总结; 还有使用到的配置文件(c++的),实在不会配置可以直接使用; 改一改配置文件,应该还可以生成c,java,c#语言的调用...

Global site tag (gtag.js) - Google Analytics