精华内容
下载资源
问答
  • c++函数声明
    万次阅读
    2019-04-01 21:22:01

    很大可能是重复声明或者头文件包含有错误

    更多相关内容
  • C++函数声明

    千次阅读 2022-03-29 22:02:33
    C++函数声明

    首先定义一个简单的比较函数,将main函数写在此函数后,程序可以正常运行

    #include<iostream>
    using namespace std;
    
    //函数的声明
    //比较函数,实现两个整型数字的比较,返回较大的值
    
    int max(int a, int b)
    {
    	cout<<"谁大:";
        return a > b ? a : b;
    }
    
    int main()
    {
    	int a = 10;
    	int b = 20;
    	cout << max(a, b) << endl;
    }

    但如果将main函数写在前面,代码及程序运行如下

    #include<iostream>
    using namespace std;
    
    //函数的声明
    //比较函数,实现两个整型数字的比较,返回较大的值
    
    
    int main()
    {
    	int a = 10;
    	int b = 20;
    	cout << max(a, b) << endl;
    }
    
    int max(int a, int b)
    {
    	cout << "谁大:";
    	return a > b ? a : b;
    }

     

    我们发现运行结果不一样了

    cout << "谁大:";

    并没有输出“谁大”

    这是因为我们把自定义的函数写在后面时没有声明它

    我们在main函数之前加一句声明

    int max(int a,int b);

    程序运行正常

    完整代码如下

    #include<iostream>
    using namespace std;
    
    //函数的声明
    //比较函数,实现两个整型数字的比较,返回较大的值
    
    int max(int a, int b);
    
    int main()
    {
    	int a = 10;
    	int b = 20;
    	cout << max(a, b) << endl;
    }
    
    int max(int a, int b)
    {
    	cout << "谁大:";
    	return a > b ? a : b;
    }

    展开全文
  • c++ 函数声明与定义

    千次阅读 2021-05-29 19:56:23
    为什么 C++ 允许多次声明


    一、函数的声明


    函数声明的作用:
    告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。


    二、函数的定义


    函数的定义一般主要有5个步骤:

    1、返回值类型 :一个函数可以返回一个值。在函数定义中

    2、函数名:给函数起个名称

    3、参数列表:使用该函数时,传入的数据

    4、函数体语句:花括号内的代码,函数内需要执行的语句

    5、return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据


    语法如下:

    返回值类型 函数名 (参数列表)
    {
    
           函数体语句
    
           return表达式
    
    }
    

    例子:

    //函数定义
    int add(int num1, int num2)
    {
    	int sum = num1 + num2;
    	return sum;
    }
    

    三、函数声明与定义使用区别


    函数的声明可以多次,但是函数的定义只能有一次


    //声明可以多次
    int max(int a, int b);
    int max(int a, int b);
    
    //定义只能一次
    int max(int a, int b)
    {
    	return a > b ? a : b;
    }
    
    int main() {
    
    	int a = 100;
    	int b = 200;
    
    	cout << max(a, b) << endl;
    
    	system("pause");
    
    	return 0;
    }
    
    

    四、为什么 C++ 允许多次声明呢?


    比如一些函数已经包含在头文件了,但是依然可以在开头再次声明一些实际用到的函数。
    这样有以下好处:

    1、可以防止某些头文件中漏掉一些函数的声明;

    2、这种方式使源代码更加清晰,特别是在庞大的工程中,更加有利于源代码的阅读。

    3、有利于组内多人实时调整接口,等待模块写好之后,再将需要开放的接口一并写入头文件,方便各模块之间的开发,编译不依赖其他模块。


    五、分文件开发


    1、后缀名为 .h 的头文件写函数的声明

    2、后缀名为 .cpp 的源文件写函数的定义

    //xxxx.h文件
    #include<iostream>
    using namespace std;
    
    //写函数的声明
    void xxxx(int a, int b);
    
    
    //xxxx.cpp文件
    #include "swap.h"
    
    //写函数的定义
    void xxxx(int a, int b)
    {
    	int temp = a;
    	a = b;
    	b = temp;
    
    	cout << "a = " << a << endl;
    	cout << "b = " << b << endl;
    }
    
    
    //main函数文件,include 后即可直接使用 xxxx 函数
    #include "xxxx.h"
    int main() {
    
    	int a = 100;
    	int b = 200;
    	xxxx(a, b);
    
    	system("pause");
    
    	return 0;
    }
    
    展开全文
  • c++ 函数声明后加const

    千次阅读 2020-04-25 16:00:55
    类的成员函数中,有一些是不改变类的成员变量的,也就是说,这些函数是"只读"函数。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const...


    一、函数后加const的意义

    类的成员函数中,有一些是不改变类的成员变量的,也就是说,这些函数是"只读"函数。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。

    实际上,const成员函数还有另外一项作用,即常量对象相关。对于内置的数据类型,我们可以定义它们的常量,用户自定义的类也一样,可以定义它们的常量对象。

    1. 非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)
    2. 表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中, 任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);
    3. 唯一的例外是对于mutable修饰的成员。 加了const的成员函数可以被非const对象和const对象调用 但不加const的成员函数只能被非const对象调用

    char getData() const { return this->letter;}

    二、const在函数前后的作用

    • 前面使用const 表示返回值为const

    • 后面加 const表示函数不可以修改class的成员

    三、示例代码

    // test1107.cpp : 定义控制台应用程序的入口点。
    //
     
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
     
    class aa{
        int num;
    public:
        aa(){
            int b =10;
            num = b;
        };
        void out1(){
            cout<<num<<endl;
        }
        void out2() const{
            cout<<num<<endl;
        }
        void out3() const{
            num+=10; //出错,const函数不能修改其数据成员
            cout<<num<<endl;
        }
     
    };
    int _tmain(int argc, _TCHAR* argv[])
    {
        aa a1;
        a1.out1();
        a1.out2();
        a1.out3();
        const aa a2;
        a2.out1(); // 错误,const的成员 不能访问非const的函数
        a2.out2();
        a2.out3();
        return 0;
    }
    

    参考文献

    函数声明后面的const用法
    C\C++中函数后面加const

    展开全文
  • C++学习2_C++函数声明和定义

    千次阅读 2022-04-20 10:22:17
    C++中函数的声明和定义 ...通常把函数声明叫做函数原型,把函数定义叫做函数实现。 1. 函数的声明 函数声明(函数原型)的语句结构: 返回值类型 函数名(参数表); 函数的声明和变量的声明一样,是一句语
  • C++关于函数声明定义的位置

    千次阅读 2021-03-05 17:53:46
    不知道刚开始学函数这块时,总以为要把函数声明放在函数定义前面,甚至有一种陷入框架的感觉,所以在此对此进行一下反思: 根据C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个...
  • C++ 函数声明和定义

    万次阅读 多人点赞 2019-03-23 01:07:00
    在程序中使用函数时,你必须先声明它然后再定义,声明的目的是告诉编译器你...通常我们把函数声明叫做函数原型,而把函数定义叫做函数实现。 函数的声明: 如:int Add(int, int); 1,在C++中,函数原型就是函...
  • C++函数声明、函数定义、函数调用

    万次阅读 多人点赞 2019-07-02 17:30:05
    如果使用自己定义的函数,这个函数在调用它的函数的后面(比如在main函数后面),则必须在调用之前进行函数声明。因为程序是从上到下逐行编译的,若无函数声明,则会无法识别函数。 函数声明在编译时并不检查参数...
  • 函数声明时,形参可以没有参数名(形参),函数定义时,一定要有参数名(形参),函数调用时,一定要有参数名(实参)。 int A(int); 这里这样写,是函数声明,可以没有形参,只要有形参类型就可以. 在函数...
  • C++ 函数声明中指定,默认参数

    千次阅读 2013-06-18 16:26:47
    C++声明函数的时候,如果指定了,参数的默认值,再调用函数的时候可以省略后面的参数。 如果调用函数写上的参数,但是不全。参数列表后面的使用默认值。如下例子,一看就清楚了。 #include int add(int a...
  • C++ 函数声明后面的const用法

    千次阅读 2017-10-29 21:39:34
    ...通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢? 看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误 #include "stdafx.h" #include using
  • C语言和C++都保留了函数声明这一需求,在声明时都有如下要求: 返回值类型与原函数必须相同 形参表的类型与顺序必须与原函数相同,但是函数原型可以不写形参名称,即便写了形参名称也可以和原函数不一样 但是有一...
  • C++函数声明后面加throw()的作用!

    千次阅读 多人点赞 2016-12-20 15:49:51
    C++里面为什么有时候在函数声明的时候在后面加throw()关键字? 解释: C++函数后面加关键字throw(something)限制,是对这个函数的异常安全作出限制;这是一种异常规范,只会出现在声明函数时,表示这个函数...
  • c++函数声明的后面加=0

    千次阅读 多人点赞 2018-09-10 16:11:58
    纯虚函数是在声明函数时被“初始化”为0的函数声明纯虚函数的一般形式是 virtual 函数类型 函数名 (参数表列) =0; 注意: ①纯虚函数没有函数体; ②最后面的“=0”并不表示函数返回值为0,它只起形式上的...
  • C++函数声明和定义

    万次阅读 2009-12-16 11:35:00
    声明是告诉编译器一些信息,以协助编译器进行语法分析...那都是因为C++同意将程序拆成几段分别书写在不同文件中以及上面提到的编译器只从上朝下编译且对每个文件仅编译一次。 编译器编译程序时,只会一个一个源文件编
  • DEV C++类的成员函数声明,定义和实现 分为两种情况 1:类体内声明并定义成员函数 法1)新建项目–>Console Aplication–>项目名称 在“项目管理”下,选择“添加文件夹”(也可以直接NEW FILE,添加文件夹...
  • 为什么在C++中函数要先声明然后再定义呢? 慕少森 你也可以不声明,直接定义。但: 1、函数的作用域只是从定义的地方...所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。 3、有时候,自己写
  • 这个const一般是对类中成员函数属性的声明,但这个声明怪怪的,只能放在函数声明的尾部,大概是因为其它地方都已经被占用了。这个声明表示任这个函数不会修改类中的数据成员。如果在编写const成员函数时,不慎修改了...
  • C++ | 函数参数默认值

    千次阅读 2020-09-08 23:03:17
    函数参数默认值(缺省函数) 必须从右向左依次赋值 不可以重复赋值(同一个文件) //调用不明确 函数参数在有默认值时,如果调用时没有传参,则默认push默认值。 实例一:不带默认值 #include <iostream&...
  • C++函数声明和定义

    千次阅读 2017-11-08 22:47:47
    在程序中使用函数时,你必须先声明它...通常我们把函数声明叫做函数原型,而把函数定义叫做函数实现。 声明并未给函数分配内存,只有定义的时候才给函数分配内存 如图所示,标注1为函数的声明,标注2为函数的定义
  • C++函数名字前的&或*

    千次阅读 多人点赞 2020-05-20 13:21:47
    在C语言中这种形式为:接下来,对于C++来说 一、& 函数名称前面加引用符号“&”的意思是返回引用类型。 格式:类型标识符 &函数名(形参列表及类型说明){ //函数体}。 在内存中不产生被返回值的副本;...
  • C++函数原型(函数声明

    千次阅读 2015-10-11 19:20:57
      从Java到c++的学习之路!!    在Java中,只要方法...但是在C++中,如果在定义前就调用了,那么要有一个函数声明,也就是函数原型。   #include &lt;iostream&gt; using namespace std; vo...
  • 以TestClass为例: class TestClass { public: TestClass() {} }; 拷贝构造函数: TestClass(const TestClass&...TestClass(TestClass&...形式1是最常见的构造函数声明,这也是最好的书写方式。 ...
  • C++函数参数的缺省值

    千次阅读 2019-01-05 22:10:57
    C++函数参数的缺省值 有一些参数的值在每次函数调用时都相同,书写这样的语句会使人厌烦。C++语言采用参数的缺省值使书写变得简洁(在编译时,缺省值由编译器自动插入)。  参数缺省值的使用规则: 【规则8-3-1...
  • C++函数参数的默认值

    万次阅读 2018-11-03 13:30:20
    1:函数参数的默认值就是说在声明函数或者定义函数的时候直接在参数后给赋值,这样在函数调用的时候调用方可以不用再给传值,它会默认使用它的默认值 错误实例: 在给函数参数赋默认值的时候要注意以下几点: ...
  • C++模板函数

    千次阅读 2021-10-10 15:30:18
    模板函数声明与定义2.模板函数的调用显式类型调用自动推导3.模板函数的底层实现 1.模板函数 1.模板函数声明与定义 C++提供了模板(template)编程的概念。所谓模板,实际上是建立一个通用函数或类,其类内部的...
  • 关于C++模板函数声明与定义的问题

    万次阅读 多人点赞 2018-07-22 21:59:37
    关于C++模板函数声明与定义的问题 关于C++模板函数声明与定义的问题 模板函数出现的问题 模板函数问题解决 模板函数出现的问题 今天在写代码的时候,发现了一个关于模板函数的问题。如下所示, demo...
  • 函数声明和定义一般都有参数,C语言中函数声明关注的是函数返回值类型、函数名称、函数参数类型,其中函数参数名称并不关注,因此参数名称可以在声明时省略,在定义时取任意名称。 注意:声明和定义是有区别的,具体...
  • 1 无参函数声明void f() { }int main(void) { f(10,“hello"); return 0; }上述代码在C语言中是完全正确的。但是在C++中确是错误的。void f() * 在C中表示函数f可以接受任何类型,任意数量的参数。(然而并...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 496,879
精华内容 198,751
关键字:

c++函数声明

c++ 订阅
友情链接: onlineexam-master.zip