C++语言中的默认参数
小标 2018-07-20 来源 : 阅读 1469 评论 0

摘要:本文主要向大家介绍了C++语言中的默认参数,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言中的默认参数,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

// -- left.cpp -- string function with a default argument// -- 程序来源: << C++ Primer Plus >>// -- 编译器:  gcc version 4.4.5

#include <iostream>

const int ArSize = 80;char *left(const char *str, int n = 1);     //必须在此处定义 n = 1

                                            //C++默认参数需要通过函数原型定义

                                            //对于带参数列表的函数,必须从左到右进行赋值

                                            //即要为默个参数设置默认值,则必须为其右所有参数提供默认值int main(){

    using namespace std;

    char sample[ArSize];

 

    cout << "Enter a string: " << endl;

    cin.get(sample, ArSize);

 

    char *ps = left(sample, 4);

    cout << ps << endl;

    delete [] ps;       //delete old string

 

    ps = left(sample);

    cout << ps << endl;

    delete [] ps;      // delete new string

 

    return 0;

}

char *left(const char *str, int n)      //若在此处定义 n = 1 编译器将会报错{

    if (n < 0)

    {

        n = 0;

    }

 

    char *ps = new char[n+1];           //此处new分配的空间可以在main函数中delete

    int i;

 

    for (i = 0; i < n && str[i]; i++)

    {

        ps[i] = str[i];

    }

 

    while (i <= n)

    {

        ps[i++] = '\0';

    }

 

    return ps;

}

//若在调用left函数的时候传给n的值远大于str所指的字符串的长度,如left("abcd", 99998)//则 char *ps = new char[n+1] 是浪费空间的一种定义方法//但是,若在定义ps之前先用strlen()获得字符串的长度会减慢程序执行的速度,因为要包含cstring或者string.h//一种可行的办法是先测试str所指的字符串的长度//  int m = 0;//  while (m <= n && str[m] != '\0')//  {//      m++;//  }//  char *ps = new char[m+1];//

root@ubuntu:~/cpp# ./left

Enter a string:

something

some

s

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程