zoukankan      html  css  js  c++  java
  • [debug]重定义默认參数

    编敲代码过程中遇到重定义默认參数的错误,例如以下例所看到的:

    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    class Student
    {
    private:
    	int number;
    	char name[10];
    public:
    	Student(int n = 0, char *s = "no name");
    };
    Student::Student(int n = 0, char *s = "no name")
    {
    	number = n;
    	strcpy_s(name, s);
    }
    int main()
    {
    	Student s1;
    	return 0;
    }




    请教他人发现了原因所在:

    1:參数的默认值仅仅能够出如今函数声明中不能够出如今函数的定义中,否则会出现參数反复定义默认參数的错误---->>语法规定

        1定义和声明分开:默认值仅仅能够出如今声明中
        2定义和声明不分开,默认值仅仅能出如今定义中



    例外:(vs2013能够将默认值出如今定义而不出如今声明中)---->>不把标准当回事
    例如以下所看到的:



    经測试,在vc6.0以及Liunx平台下,当定义和声明分开时:默认值仅仅能够出如今声明中

    建议编程者还是按标准做得好

  • 相关阅读:
    Vue无缝滚动
    vue+Axios 实现路由拦截和登录拦截
    添加删除数组元素的方法
    日期时间相关
    Vue源码编译过程
    new关键字执行过程
    预解析
    echarts图表数据为空的时候不显示气泡
    arguments使用
    log4net介绍很全面
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7067035.html
Copyright © 2011-2022 走看看