2012-06-11 59 views
0
#include<iostream> 
using namespace std; 

class StudentClass{ 
friend class Oopclass; 
public: 
    StudentClass(); 
    void setStudentData(); 
    void printStudentScore(); 
    StudentClass* next; 
    ~StudentClass(); 
private: 
    string std_ID; 
    int sID, sMid, sFin, sOP, hw[3]; 
    double sTotal; 

}; 

class OopClass{ 
friend class StudentClass; 
public: 
    OopClass(); 
    void setOopData(); 
    void printOopScore(); 
    void queryOopScore(); 
    void findOopAverageScore(); 
    void addStudentData(); 
    void deleteStudentData(); 
    void updateStudentData(); 
    ~OopClass(); 
private: 
    string professor, subject; 
    int cSn; 
    double cSAvg; 
    StudentClass* cSAddr; 
}; 

int main(int argc, char **argv){ 
OopClass Info[3]; 
Info[0].setOopData(); 
return 0; 
} 

StudentClass::StudentClass(){ 
} 
void StudentClass(){ 
} 
void StudentClass::setStudentData() { 

} 
StudentClass::~StudentClass(){ 
} 
OopClass::OopClass(){ 
} 
void OopClass::setOopData() { 
cout << "Professor?" << endl; 
cin >> professor; 
cout << "Subject?" << endl; 
cin >> subject; 
cout << "How many students do you want to input ?" << endl; 
int number = 0; 
cin >> number; 
cSAddr = new StudentClass; 
//for(int i = 0; i < number; i ++) setStudentData(); 

} 
OopClass::~OopClass(){ 
} 

当我厌倦编写“cSAddr = new StudentClass”时, ,它上来声明指向成员funcion中的不同类的指针

误差大约

“C:\用户\ lypan \文件\ final.cpp在成员函数 '无效 OopClass :: setOopData()':

63 14 C:\ Users \用户lypan \文件\ final.cpp [错误]预期 类型说明符之前 'StudentClass'

63 14 C:\用户\ lypan \文件\ final.cpp从[错误]无效的转换 ' int *'到'int'[-fpermissive]

63 14 C:\ Users \ lypan \ Documents \ final.cpp [错误]预计','或';' before'StudentClass'“

我不知道为什么我做错了,请告诉我我犯了什么错误。谢谢!

+0

您是否在定义'OopClass :: setOopData'的'.cpp'文件中包含定义'StudentClass'的头文件? – dirkgently

+0

发布完整的代码,而不是任意的片段。 –

+0

对不起!我正在编辑>< –

回答

1

这里唯一的错误是,你没有实现你的类的构造函数。但是这应该会导致链接器错误。

这可能不是你的代码,但它可能是你不包括StudentClass.hOopClass.h(或其他)在你定义OopClass::setOopData()的文件中。

编辑:

void StudentClass() 

声明一个上线46名为StudentClass功能 - http://codepad.org/9DP6zpHU - 你可能忘了限定它。

StudentClass::StudentClass(){ 
} 
//THIS! 
void StudentClass(){ 
} 
void StudentClass::setStudentData() { 

} 
+0

这是我的代码,我没有分开头。我写给一个cpp。我滑过构造函数使问题更具可读性。 –

+0

但thx为您的答案! –

+0

@梁玉平然后你的编译器就是这个问题 - http://ideone.com/x3tSO –

0

的错误是你定义具有相同名称的函数作为类StudentClass

void StudentClass(){ 
} 

删除功能,它应该更好地工作。