关于默认参数的定义问题

pressmam 2005-07-11 04:08:00

class Account
{
public:
Account();
explicit Account(const char*, double=0.0);

};
Account:: Account(const char *ps, double dv = 0.0)//定义不正确,但是就定义double dv能通过编译,但出现的不是0.0
{
pstring = new char(strlen(ps) + 1);
strcpy(pstring, ps);
count = dv;
}

请问这是什么原因,该如何正确定义
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chunhai12 2005-07-11
  • 打赏
  • 举报
回复
1.使用初始化列表
2.默认参数在函数申明中
3.不明白楼主要问什么
pressmam 2005-07-11
  • 打赏
  • 举报
回复
count 是定义为 private
pressmam 2005-07-11
  • 打赏
  • 举报
回复
但是还的给count赋值啊,也是说默认的是0.0

那该如何处理?
zsx123 2005-07-11
  • 打赏
  • 举报
回复
class Account
{
public:
double count;
public:
Account();
explicit Account(const char*, double=0.0);

};
Account:: Account(const char *ps, double dv
{
char* pstring = new char(strlen(ps) + 1);
strcpy(pstring, ps);
count = dv;
}
linuk 2005-07-11
  • 打赏
  • 举报
回复
#include<iostream>

using namespace std;



class Account
{
public:
Account();
explicit Account(const char*, double=0.0);

};
Account:: Account(const char *ps, double dv)
{
cout<<dv;
}

int main()
{
char *p="aasd";
Account a(p);
return 0;
}
前面写错了
dv=0
linuk 2005-07-11
  • 打赏
  • 举报
回复
class Account
{
public:
Account();
explicit Account(const char*, double=0.0);

};
Account:: Account(const char *ps, double dv)
{
cout<<dv;
}

int main()
{
char b[]="sdfsd";
char *p=b;
Account a(p);
return 0;
}

结果dv是=0~

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧