c++问题 [Error] 'MA' was not declared in this scope 明明定义了MA了 5

#include<iostream>#include<string>usingnamespacestd;classAccount{public:Account(longi... #include <iostream>
#include <string>
using namespace std;
class Account
{
public:
Account(long id3, string name3)
{
ID = id3;
name = name3;
}

// private:

protected:
long ID;//账号
string name;//用户名
};

class AliPay:virtual protected Account
{
public:
AliPay(double zamount3, int out3, long ID2, string Name2):Account(ID2, Name2)
{
amount = zamount3;
outlimit = out3;
}

void payadd(double);
// private:

protected:
double amount;//支付宝账户中的金额
int outlimit;//支付宝转账上限,资金转出不得超出账户中金额也不能超出上限
//当转账要求超出上述限制时,自动转出最大允许金额
};
void AliPay::payadd(double addmoney)
{
amount += addmoney;
}

class AliFund:virtual protected Account
{
public:
AliFund(double yamount3, double rate3, int in3, long ID1, string Name1):Account(ID1, Name1)
{
amount = yamount3;
rate = rate3;
inlimit = in3;
}

// private:

protected:
double amount;//余额宝账户中的金额
double rate;//余额宝账户中资金年利率
int inlimit;//余额宝转账下限,资金转入余额宝时不得少于该下限,上不封顶
//当转入资金不足下限金额时,自动忽略该资金转入操作,资金退回
};

class My_Ali:public AliPay, public AliFund
{
public:
My_Ali(long id2, string name2, double zamount2, int out2, double yamount2, double rate2, int in2, int P2, int shold2):
AliPay(zamount2, out2, id2, name2), AliFund(yamount2, rate2, in2, id2, name2), Account(id2, name2)
{
auto_collect_flag = P2;
threshold = shold2;
}

private:
bool auto_collect_flag;//资金自动收集标志
int threshold;//资金自动收集阈值
// protected:

};

int main()
{
long id1;
string name1, P1;
double zamount1, yamount1, rate1;
int out1, in1, shold1, y;
cin >> id1 >> name1 >> zamount1 >> out1 >> yamount1 >> rate1 >> in1 >> P1;
if(P1 == "Y")
{
cin >> shold1;
My_Ali MA(id1, name1, zamount1, out1, yamount1, rate1, in1, 1, shold1);
}
else
My_Ali MA(id1, name1, zamount1, out1, yamount1, rate1, in1, 0, 0);
int x;
double money;
cin >> x >> money;
if(x = 1)
{
cin >> y;
switch(y)
{
case 1:
MA.payadd(money);
}

}

return 0;
}
展开
 我来答
金色潜鸟
2018-05-05 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5697万
展开全部
in this scope -- 在你声明和使用 MA 所处的 定义域中 的意思。
你需要仔细检查括号 配对 情况。
----
另外,与此无关的 if(x = 1) 这句,条件 永远成立 。你是否想用 x==1, 而不是赋值。
windos2011
2018-05-05 · TA获得超过233个赞
知道小有建树答主
回答量:251
采纳率:84%
帮助的人:174万
展开全部
My_Ali(long id2, string name2, double zamount2, int out2, double yamount2, double rate2, int in2, int P2, int shold2): 只有声明 没有定义 不能调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式