这么public 错在哪里?

linhai1978 2005-02-11 12:19:31
Account.h
class Account
{
public:
Account();
Account(unsigned n,double b);
void deposit(double amt);
bool withdraw(double amt);
double balance();
unsigned id();

private:
unsigned acc_no;
double acct_bal;
};

Account.cpp
#include <stdio.h>
#include "Account.h"

main()
{
Account susan(55,6.0);
Account jack;
}

public Account::Account(unsigned id,double amt)
{
acct_no=id;
if(amt > 0)acct_bal = amt;
else acct_bal=0.0;
};
在linux下使用gcc编译,使用命令gcc -g Account.cpp -o Account,和gcc -c Account.cpp -o Account都出现问题parse error before public;请大家帮忙!
...全文
240 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ra3 2005-02-12
  • 打赏
  • 举报
回复
//Account.h
class Account
{
public:
Account() {}
Account(unsigned n,double b);
void deposit(double amt) {}
bool withdraw(double amt) {}
double balance() {}
unsigned id() {}

private:
unsigned int acct_no;
double acct_bal;
};

//Account.cpp
#include <stdio.h>
#include "Account.h"
main()
{
Account susan(55,6.0);
Account jack;
}

Account::Account(unsigned id,double amt)
{
acct_no=id;
if(amt > 0)acct_bal = amt;
else acct_bal=0.0;
};

====================
在外部定义类中的函数时不要写 public 或 protected 和 private; 这些只是在类中声明时使用!

ra3 2005-02-12
  • 打赏
  • 举报
回复
你可以去 CSDN 文档里搜索下 Makefile 那里写的比较详细.
Lethe_1 2005-02-12
  • 打赏
  • 举报
回复
必须提供缺省构造函数!你要么就干脆不要任何构造函数,这时系统会为你加一个,倘使你有了构造函数,那么必须提供缺省构造函数。看看Lipppman的书应该有解释的,我好像看到过记不太清了。:)
linhai1978 2005-02-12
  • 打赏
  • 举报
回复
谢谢ra3(啄木鸟) ,c++在调试的时候是否和c看的信息是一样的呢?比如设置函数断点,有谁在g++下调试过c++麻烦指教一下
structme 2005-02-12
  • 打赏
  • 举报
回复
晕..来晚了 贴已经解了
你定义构造函数其没有值时 要加{} 小小的错误会导致你程序运行不了
还那个外部定义的函数 你加什么public?
你在写派生类的函数??????????
ra3 2005-02-11
  • 打赏
  • 举报
回复
public Account::Account(unsigned id,double amt)
{
...
}

这里不能有 public
linhai1978 2005-02-11
  • 打赏
  • 举报
回复
lw1a2(一刀流) 怎么编译的,用的是什么编译器?能不能把你的完整程序粘贴上来呀?偶是一个linux迷,刚从c转fc c++,所以很多地方不会,请大家多帮忙,
cccloveyf 2005-02-11
  • 打赏
  • 举报
回复
我感觉如下原因,不知道说的对不对?互相学习,我没用过gcc
Account();
Account(unsigned n,double b);
void deposit(double amt);
bool withdraw(double amt);
double balance();
unsigned id();
这么多函数在.h中,而且又没声明位虚函数,但是在cpp文件中只给public Account::Account(unsigned id,double amt)定义了,其他的函数定义呢?还有main函数是不是应该单独在弄个cpp文件放啊,不要放到类的cpp里边.
dean7411 2005-02-11
  • 打赏
  • 举报
回复
Account();应该这样写吧Account(){};
lw1a2 2005-02-11
  • 打赏
  • 举报
回复
因为我编译了^_^
zhengwei1984222 2005-02-11
  • 打赏
  • 举报
回复
楼上真细心啊
lw1a2 2005-02-11
  • 打赏
  • 举报
回复
楼上说的是一点,还有:
1.
private:
unsigned acc_no;//这里应该是acct_no
2.
提供了默认的构造函数的声明,却没有定义,也编译不通过,可以这样:
public:
Account(){};
linhai1978 2005-02-11
  • 打赏
  • 举报
回复
为什么呀?

64,642

社区成员

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

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