C++函数之基本介绍


C++程序由一个或多个被称为函数的模块组成。程序从main()函数开始执行,因此该函数必不可少。

C++函数分两种:有返回值的和无返回值的。

参数是发送给函数的信息,而返回值是从函数中返回去的值,在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型,每个函数都应该有其函数原型。对于C++函数库中的每个函数,都在一个或多个头文件中提供了其原型。有的函数需要多个参数,也有的不需要任何参数,有的函数有返回值,有的没有。比如,当一个函数把值发送给屏幕而不是调用程序时,不需要返回值。但是C++对于返回值的类型有一定的限制:不能是数组!可以是其他任何类型(整数、浮点数、指针、甚至可以是结构和对象!),有趣的是,虽然不能直接返回数组,但是可以把数组作为结构或对象组成部分来返回。

对于名称空间的使用,只让需要访问名称空间std的函数访问它是更好的选择,让程序能够std有多种方法,主要列举四种:

(1)、将using namespace std;放在函数定义之前,让文中所有的函数都能够使用名称空间std中所有的元素。

(2)、将using namespace std;放在特定的函数定义中,只让该函数使用。

(3)、在特定的函数中使用类似using std::cout;这样的编译指令,而不是using namespace std;让该函数能够使用指定的元素,如cout。

(4)、完全不使用编译命令using,而在需要使用名称空间std中的元素时,使用前缀std::,如std:: cout<<”I’m using cout and endlfrom the std namespace”<<std::endl;

在函数中有多种类型的C++语句,包括以下6种:声明语句;赋值语句;消息语句;函数调用;函数原型;返回语句。

类是用户定义的数据类型规范,它详细描述了如何表示信息以及可对数据执行的操作。对象是根据类规范创建的实体,就像简单变量是根据数据类型描述创建的实体一样。

 

要使用C++函数必须完成三个方面的工作:提供函数定义;提供函数原型;调用函数。

其中库函数是已经定义和编译好的函数,可以使用标准库头文件来提供其原型,因此只需要正确的调用即可。为什么需要原型?原型描述了函数到编译器的接口,也就是说,它将函数返回值的类型(有的话)以及参数的类型和数量告诉编译器。没有原型也是可以的,但这导致编译器效率不高,若函数在不同的文件中的话将无法访问这些代码。避免使用函数原型的唯一方法是在首次使用函数之前定义它,但若要把main()放在最前面则不可行。获得原型最简单的方法就是,复制函数定义中的函数头。

原型可以确保以下几点:

l  编译器正确处理函数返回值

l  编译器检测使用的参数数目是否正确

l  编译器检测使用的参数类型是否正确,若不正确则转换为正确的类型(可能的话)

C++通常按值传递参数,这意味着将数值参数传递给函数,而后者将其赋给一个新的变量。用于接收传递值得变量称为形参(parameter),传递给函数的值被称为实参(argument)。

// twoarg.cpp -- a function with 2 arguments

#include <iostream>

using namespace std;

void n_chars(char, int);

int main()

{

    inttimes;

   char ch;

 

   cout << "Enter a character: ";

    cin>> ch;

   while (ch != 'q')        // q toquit

    {

       cout << "Enter an integer: ";

       cin >> times;

       n_chars(ch, times); // function with two arguments

       cout << "\nEnter another character or press the"

                " q-key to quit: ";

          cin >> ch;

    }

   cout << "The value of times is " << times <<".\n";

   cout << "Bye\n";

    //cin.get();

    //cin.get();

   return 0;

}

 

void n_chars(char c, int n) // displays c ntimes

{

   while (n-- > 0)         //continue until n reaches 0

       cout << c;

}

函数中使用cin>>ch,而不是cin.get(ch)或ch=cin.get()来读取一个字符,这两个函数读取所有的输入字符包括空格和换行符,而cin>>跳过空格和换行符。当用户对程序提示作出响应时,必须在每行的最后按enter键以生成换行符,cin>>ch可以轻松的跳过这些换行符,当输入的下一个字符为数字时,cin.get()将读取后面的换行符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值