C++两个类相互包含,以及构造器

来源:互联网 发布:中国程序员数量 编辑:程序博客网 时间:2024/05/22 22:28
#include<iostream>using namespace std;class Student;class College{    public:    void haha(Student *p); //此处IDE只分配给指针8个字节    //所以class Student 可以是不完善的,但必须要先声明};class Student{private:    int sid;    int age;    char gender;public:    Student():sid(-2),age(-1),gender('M'){} //默认构造(无参构造)    Student(int sid,int age,char gender):sid(sid),age(age),gender(gender){}  // 有参构造    Student(Student &r):sid(r.sid),age(r.age),gender(r.gender){} // 拷贝构造    ~Student(){  //析构函数        cout << "byebye" << endl;    }    void hoho();    int getSid(){        return sid;    }    void setSid(int sid){        this->sid=sid;    }    friend void College::haha(Student *p);  //友元};void College::haha(Student *p){        cout << p->sid << endl;    }void Student::hoho(){    cout << "This year I am " << this->age << endl;}int main(){    Student lisi(1001,20,'M');    Student *p;    p=&lisi;    College baobei;    Student zhangsan=lisi;    cout<<zhangsan.getSid()<<endl;    baobei.haha(p);    return 0;}
原创粉丝点击