学习中遇到的难题

来源:互联网 发布:北京凶宅数据库名单 编辑:程序博客网 时间:2024/05/22 10:40

1.

#include <iostream>
#include<string>
using namespace std;
class Student
{
public :
    Student(int n,string nam){
    num=n;
    name=name;
    }
    Student(){}
    void display()
    {
        cout<<"num:"<<num<<endl<<"name:"<<endl;
    }
    ~Student(){}
protected :
    int num;
    string name;

};
class Student1:public Student
{
public :
    Student1(int n,string nam,int n1,string nam1,int a,string ad) : Student(n,nam),monitor(n1,nam1)
    {
        age=a;
        addr=ad;
    }
    void display1();
    void show_monitor()
    {
        cout<<"the monitor is"<<endl;
        monitor.display();
    }
private :
    Student moniter;
    int age;
    string addr;
};
void Student1 :: display1()
{
    cout<<"the student is:"<<endl;
    cout<<"num:"<<num<<endl;
    cout<<"name:"<<name<<endl;
    cout<<"age:"<<age<<endl;
    cout<<"address:"<<addr<<endl;    
}
int main()
{
Student1 stud1(10010,"Wang-li",10001,"Li-sun",19,"115 Beijing Road,Shanghai");
stud1.display1(); //输出学生的数据
stud1.show_monitor(); //输出子对象的数据
    return 0;
}

上面代码总是报错:

--------------------Configuration: 51 - Win32 Debug--------------------
Compiling...
3.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\51\3.cpp(26) : error C2614: 'Student1' : illegal member initialization: 'monitor' is not a base or member
D:\Program Files\Microsoft Visual Studio\MyProjects\51\3.cpp(34) : error C2065: 'monitor' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\51\3.cpp(34) : error C2228: left of '.display' must have class/struct/union type
执行 cl.exe 时出错.

3.obj - 1 error(s), 0 warning(s)

解决之道:

2.基类的构造函数为什么不能被继承?构造函数的访问属性是怎样规定的?


0 0
原创粉丝点击