在一个类中调用另一个类的构造函数。

public Student(String name,int age,String classer,Score score),
当对Student类的构造函数进行调用时要怎么对score赋值?

public class Score {

double math;
double chinese;

public double getMath() {
return math;
}
public void setMath(double math) {
this.math = math;
}
public double getChinese() {
return chinese;
}
public void setChinese(double chinese) {
this.chinese = chinese;
}

}

第1个回答  推荐于2017-11-26
不要这么规划,类的有参构造函数用来接收数据初始化类成员的,不要反过来去赋值形参,虽然形参通过引用可以赋值,但是这种规划会造成逻辑不清,流程混乱,实际上是你把顺序弄反了。

想必你的student类包含姓名、年龄和分数,而分数又包含各类学科,这些对象或信息属于student的属性,而student本身是个关于"学生"的数据对象,学生对象不应该负责其成员对象的赋值工作。这些工作应该由与学生管理业务相关的代码完成,类的工作只赋值维护自己相关的数据访问(读取和设置以及相关事务处理),但不负责数据来源。

Score负责保存和提供学科分数,本身也不应该负责数据来源,而是由管理科目学分的业务代码赋值,然后传递给student类的对象。

也就是说,student对象创建之前先要通过学分管理程序得到Score对象,以及学生管理代码获得姓名、年龄等数据,然后通过student的构造函数创建student对象。而不是让student去赋值给Score对象。本回答被提问者采纳
第2个回答  2019-01-15
class bb
{
public:
bb() { m_a = 1; m_b = 1; }
bb(int i_a, int i_b) { m_a = i_a; m_b = i_b; }
private:
int m_a;
int m_b;
};
class aa
{
public:
aa(){ m_a = 1; m_b = 1; }
aa(int i_a,int i_b):m_a(i_a), m_b(i_b), m_c(i_a,i_b){}
private:
int m_a;
int m_b;
bb m_c;
};
int main()
{
aa a(20,20);
}
相似回答