首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

编译器说找不到类。怎么处理?请大家帮帮小弟我吧

2012-05-01 
编译器说找不到类。怎么办?请大家帮帮我吧。因为我里面用到了友元函数,说以在VC++中用文件用#includeiostre

编译器说找不到类。怎么办?请大家帮帮我吧。
因为我里面用到了友元函数,说以在VC++中用文件用#include<iostream.h> ,并把using namespace std;去掉

C/C++ code
#include<iostream.h>   #include<string>#include <iomanip>class Teacher{public:     Teacher(string nam,int Age,int Sex,char *Department,char *phone,string title1);    ~Teacher( );    void display();protected:     string name;    int m_nAge;      int m_nSex;//0:women,1:man      char *m_szDepartment;      char *m_phone;     string title;};Teacher::Teacher(string nam,int Age,int Sex,char *Department,char *phone,string title1){    name=nam;    m_nAge=Age;    m_nSex=Sex;    m_szDepartment=new char[strlen(Department)+1];  //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"      strcpy(m_szDepartment,Department);      m_phone=new char[strlen(phone)+1];  //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"      strcpy(m_phone,phone);      title=title1;    }Teacher::~Teacher()  {      delete [] m_szDepartment;      delete [] m_phone;  }  void Teacher::display(){    cout << setiosflags(ios :: left) << setw(6)  <<name<< setw(20) <<m_nAge << setw(8)<<((m_nSex==0)?"women":"man")<<setw(11)<<m_szDepartment<<setw(11)<<title1<<setw(11)<<m_phone;  }  class Cadre{public:     Cadre(string nam,int Age,int Sex,char *Department,char *phone,string post1) ;    ~Cadre( ); protected:     string name;    int m_nAge;      int m_nSex;//0:women,1:man      char *m_szDepartment;      char *m_phone;     string post;};Cadre::Cadre(string nam,int Age,int Sex,char *Department,char *phone,string post1){    name=nam;    m_nAge=Age;    m_nSex=Sex;    m_szDepartment=new char[strlen(Department)+1];  //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"      strcpy(m_szDepartment,Department);      m_phone=new char[strlen(phone)+1];  //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"      strcpy(m_phone,phone);      post=post1;}Cadre::~Cadre()  {      delete [] m_szDepartment;      delete [] m_phone;  }    class Teacher_Cadre:public Teacher,public Cadre{public:     Teacher_Cadre(string nam,int Age,int Sex,char *Department,char *phone,string title1,string post1,string wages1) ;    ~Teacher_Cadre( );     void show();    friend ostream & operator<<(ostream &,const Teacher_Cadre &);//重载运算符"<<" protected:     string name;    int m_nAge;      int m_nSex;//0:women,1:man      char *m_szDepartment;      char *m_phone;     string wages;};Teacher_Cadre::Teacher_Cadre(string nam,int Age,int Sex,char *Department,char *phone,string title1,string post1,string wages1):Teacher(nam,Age,Sex,*Department,*phone,title1),Cadre(nam,Age,Sex,*Department,*phone,post1),wages(wages1){}Teacher_Cadre::~Teacher_Cadre()  {      delete [] m_szDepartment;      delete [] m_phone;  }void Teacher_Cadre::show(){    display();}ostream & operator<<(ostream &output,const Teacher_Cadre &p)  {      output<<"工资为:";    output<<<<p.wages<<endl;      output<<"职务为:";    output<<<<p.title1<<endl;      return output;  } int main( ){    char name[10],post[19],department[10];      int sex,age;      float salary;      cout<<"input Teacher_Cadre's name,Age,sex(0:women,1:man),age,department,post,wages:\n";      cin>>name>>Age>>sex>>age>>department>>post>>wages;      Teacher_Cadre Teacher_Cadre1(name,Age,sex,age,department,post,wages);      Teacher_Cadre1.Show();     cout<<Teacher_Cadre1;    return 0;}


谢谢各位了!!!

[解决办法]
错误信息呢??
lz你在干啥?多继承,那么多同名的变量名什么的?
自己跟自己找不自在吗??
------解决方案--------------------


错误的行号是什么
[解决办法]
你看下是不是有神马中文的标点或者中文的括号,手头没有编译器。
如果你能把编译器的错误提示贴出来,我想会有更多人乐意帮你看的。。。
good luck
[解决办法]
一堆堆的语法错误.记得仔细看错误.
main函数里面的没法改了.你自己看着改输入项

C/C++ code
#include<iostream.h>#include<string>#include <iomanip>class Teacher{    public:        Teacher(string nam, int Age, int Sex, char* Department, char* phone, string title1);        ~Teacher();        void display();    protected:        string name;        int m_nAge;        int m_nSex;//0:women,1:man        char* m_szDepartment;        char* m_phone;        string title;};Teacher::Teacher(string nam, int Age, int Sex, char* Department, char* phone, string title1){    name = nam;    m_nAge = Age;    m_nSex = Sex;    m_szDepartment = new char[strlen(Department)+1]; //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"    strcpy(m_szDepartment, Department);    m_phone = new char[strlen(phone)+1]; //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"    strcpy(m_phone, phone);    title = title1;}Teacher::~Teacher(){    delete [] m_szDepartment;    delete [] m_phone;}void Teacher::display(){    cout << setiosflags(ios :: left) << setw(6)  << name << setw(20) << m_nAge << setw(8) << ((m_nSex == 0) ? "women" : "man") << setw(11) << m_szDepartment << setw(11) << title << setw(11) << m_phone;}class Cadre{    public:        Cadre(string nam, int Age, int Sex, char* Department, char* phone, string post1) ;        ~Cadre();    protected:        string name;        int m_nAge;        int m_nSex;//0:women,1:man        char* m_szDepartment;        char* m_phone;        string post;};Cadre::Cadre(string nam, int Age, int Sex, char* Department, char* phone, string post1){    name = nam;    m_nAge = Age;    m_nSex = Sex;    m_szDepartment = new char[strlen(Department)+1]; //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"    strcpy(m_szDepartment, Department);    m_phone = new char[strlen(phone)+1]; //此处的处理是个重点,处理不好,会在程序中植入非常严重且隐蔽性极强的"定时炸弹"    strcpy(m_phone, phone);    post = post1;}Cadre::~Cadre(){    delete [] m_szDepartment;    delete [] m_phone;}class Teacher_Cadre: public Teacher, public Cadre{    public:        Teacher_Cadre(string nam, int Age, int Sex, char* Department, char* phone, string title1, string post1, string wages1) ;        ~Teacher_Cadre();        void show();        friend ostream& operator<<(ostream &, const Teacher_Cadre &);//重载运算符"<<"    protected:        string name;        int m_nAge;        int m_nSex;//0:women,1:man        char* m_szDepartment;        char* m_phone;        string wages;};Teacher_Cadre::Teacher_Cadre(string nam, int Age, int Sex, char* Department, char* phone, string title1, string post1, string wages1):    Teacher(nam, Age, Sex, Department, phone, title1), Cadre(nam, Age, Sex, Department, phone, post1), wages(wages1) {}Teacher_Cadre::~Teacher_Cadre(){    delete [] m_szDepartment;    delete [] m_phone;}void Teacher_Cadre::show(){    display();}ostream& operator<<(ostream& output, const Teacher_Cadre& p){    output << "工资为:";    output << p.wages << endl;    output << "职务为:";    output << p.title << endl;    return output;}int main(){    char name[10], post[19], department[10];    string wages;    int sex, age,Age;    float salary;    cout << "input Teacher_Cadre's name,Age,sex(0:women,1:man),age,department,post,wages:\n";    cin >> name >>Age >> sex >> age >> department >> post >> wages;    Teacher_Cadre Teacher_Cadre1(name, Age, sex, department, "","",post, wages);    Teacher_Cadre1.show();    cout << Teacher_Cadre1;    return 0;} 


[解决办法]
头文件少了.
#include<string>
[解决办法]
算了.
直说吧:扔掉vc6.0.
用 iostream,用 using namespace std.
[解决办法]
用vc6.0出的问题就没必要纠结了
[解决办法]

探讨

算了.
直说吧:扔掉vc6.0.
用 iostream,用 using namespace std.

热点排行