【发布时间】:2014-09-23 17:12:54
【问题描述】:
我按照学校的推荐使用 Borland C++ 4.5。 当我尝试运行此代码时,我在尝试运行代码时遇到三个错误。 我每次都尝试更改访问说明符,但都失败了。
#include "iomanip.h"
#include "iostream.h"
#include <conio.h>
#include <stdio.h>
class person
{
public:
int code;
char name[50];
void PEnter()
{
cout << "\nEnter Code :\n";
cin >> code;
cout << "\nEnter Name :\n";
gets(name);
}
};
class account : public person
{
public:
float pay;
void AcEnter()
{
cout << "\nEnter Pay :\n";
cin >> pay;
}
};
class admin : public person
{
public:
int experience;
void AdEnter()
{
cout << "\nEnter Experience :\n";
cin >> experience;
}
};
class master : public account, admin
{
public:
void MEnter()
{
PEnter();
AcEnter();
AdEnter();
}
void MRet()
{
cout << setw(20) << name << "\t" << setw(7) << code << "\t"
<< setw(6) << pay << "\t" << setw(3) << experience << "\n";
}
};
void main()
{
clrscr();
master M[200];
int i = 0;
char ch;
do {
M[i].MEnter();
++i;
cout << "\nEnter More :\n";
cin >> ch;
} while (ch == 'Y' || ch == 'y');
int j = i;
clrscr();
cout << setw(20) << "Name\t" << setw(7) << "Code\t" << setw(6)
<< "Pay\t" << setw(3) << "\tExperience\n";
for (i = 0; i <= j; ++i) {
M[i].MRet();
}
getch();
}
这是我得到的三个错误:
Error NONAME00.CPP 43 : Member is ambiguous 'person::PEnter' and 'person::PEnter' in function master::MEnter()
Error NONAME00.CPP 49 : Member is ambiguous 'person::name' and 'person::name' in function master::MRet()
Error NONAME00.CPP 49 : Member is ambiguous 'person::code' and 'person::code' in function master::MRet()
我不知道person 类是否被继承(由master 类)。
【问题讨论】:
-
“我按照学校的建议使用 Borland C++ 4.5” 这不是 20 年历史的 IDE 吗?
-
@dyp,是的,差不多 20 年了。当 IDE 和编译器完全 100% 免费且新且实际上符合标准时,为什么有人会推荐它。
-
@user,您已将问题标记为 C++98。这是不正确的。您的代码不是 C++98,而是标准 C++。例如,
void main和#include "iostream.h"。这个班级/学校对你的伤害比对你的帮助更大。 -
嘿,IDE 确实有 20 年历史了。但是我们学校的教学大纲告诉我们要遵循 Turbo C++ 或 Borland C++....