编了一个C++程序不知是哪错了

来源:百度知道 编辑:UC知道 时间:2024/05/01 02:56:33
请高手帮我看一下,哪里错了,为什么,如何改?多谢!!
#include "iostream.h"
class number
{
public:
number(int a)
{
n=a;
}
void printnumber()
{
cout<<"学生的学号:"<<n<<endl;
}
private:
int n;
};
class student
{
private:
number num(11);
char *name;
public:
student(char *s)
{
name=s;
}
void printname()
{
cout<<"学生的名字:"<<name<<endl;
}

};
void main()
{
student stu("yang");
stu.printname();
stu.num.printnumber();
}

给你改好了,相关说明都标出了
你试试吧!

#include "iostream.h"

class number
{
private:
int n;
public:
number(int a) {
n=a;
}
void printnumber() {
cout<<"学生的学号:"<<n<<endl;
}
};

class student {
private:
//number num(11);//这样不可以 ,在构造函数中初始化
number num;
char *name;
public:
student(char *s,int a) :num(a)
{
name=s;
}
void printname()
{
cout<<"学生的名字:"<<name<<endl;
}

void print() //我加的函数
{
num.printnumber();
printname();
}

} ;

void main()
{
student stu("yang",11);
stu.printname();
// stu.num.printnumber(); //因为num是私有成员,不能在这访问
stu.print();
}

stu.num.printnumber();

num在student里是私有变量,怎么可以直接用呢?

还有student类中的private