【发布时间】:2014-10-30 21:03:58
【问题描述】:
我已将我的函数“Credit”声明为带有一些参数的私有成员。我的观察是,每当我尝试不带任何参数进行编译时,编译器都会成功编译。但是一旦我使用函数中的参数进行编译,编译器就会出错
“Transaction :: Credit”不是“Transaction”的成员
这是我的代码
class Transaction : public Menu
{
private :
void Credit(int depost);//{ return 0;}
public :
void Deposit();
void Withdraw(){}
void Transfer(){}
};
void Transaction :: Deposit()
{
char custid[10]; int deposit;
clrscr();
cout << endl << endl << endl << endl << endl;
cout << "\t\t\t\t DEPOSIT " << endl;
cout << "\t\t Please enter your Customer ID" << endl;
cin >> custid;
cout << "\t\t Please enter the amount you want to deposit (in Rupees)" << endl;
cin >> deposit;
// Credit (depost);
}
void Transaction :: Credit (depost)
{
}
我正在使用 Turbo C++,所以请根据这个 IDE 指导我。
【问题讨论】:
-
定义
void Transaction::Credit(depost)应该有一个depost的类型说明符,即void Transaction::Credit(int depost) -
就是这样!谢谢。但是为什么我们需要一个类型说明符呢? @YoungJohn
-
@Swanav:你为什么不呢? C++ 是一种强大的(无论如何……)静态类型语言。
-
我知道我很少看到你的代码,但我将使用我的演绎技巧说,从一个名为
Menu的类派生一个进行银行交易的类几乎是肯定是一个糟糕的设计。 -
在 C 中,如果没有给出类型说明符,它将默认为
int。 C++ 删除了该默认值并要求对其进行指定。因此,取决于 TurboC++ 是否强制执行该限制,它应该可以工作,或者是语法错误。 TC++的错误信息明显是错误的。
标签: c++ class methods compiler-errors turbo-c++