|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <iostream>
- using namespace::std;
- static const char GRADES[] = { 'F', 'F', 'F', 'F', 'F', 'F', 'D', 'C', 'B', 'A', 'A' };
- class Grade
- {
- public:
- char ltr;
- int prct;
- Grade()
- {
- ltr = 'A';
- prct = 0;
- }
- void GradePrct(Grade *grade, int prct);
- void GradeLtr(Grade *grade, char ltr);
- void printGrade(Grade *grade);
- };
- void Grade::GradePrct(Grade *grade, int prct)
- {
- grade->prct = prct;
- grade->ltr = GRADES[prct / 10];
- }
- void Grade::GradeLtr(Grade *grade, char ltr)
- {
- grade->ltr = ltr;
- grade->prct = 100 - (ltr - 'A') * 10 - 5;
- }
- void Grade::printGrade(Grade *grade)
- {
- cout << "Grade:" << grade->prct << "->" << grade->ltr << endl;
- }
- int main()
- {
- Grade g;
- int prct;
- char c;
- cout << "Input two space seprated grades (1st in %%, 2nd in letter): ";
- cin >> prct;
- cin >> c;
- g.prct = prct;
- Grade::GradePrct(&g, prct); //报错 非静态成员引用必须与特定对象相对
- Grade::printGrade(&g); //报错
- Grade::GradeLtr(&g, c); //报错
- Grade::printGrade(&g); //报错
- return 0;
- }
复制代码 这是一个用来分数和等第转换的c++程序,如果把报错这几行里的Grade::去掉,把类函数那里的Grade::也都去掉,就不报错可以运行,但是加上了Grade::就报错,说非静态成员引用必须与特定对象相对,想知道原因,和怎么改? |
|