-6

誰かが、プログラムが3番目の部分で実行に失敗する理由、つまりコピーコンストラクターを渡すときに失敗する理由を教えてもらえますか?スタッド(スタッド)の近くに識別子が必要だということです

class Stud
{
String name;
int rollno;
double per;

Stud()
 {
  name="";
  rollno=0;
  per=0.0;
 }

Stud(String n,int rn,double p)
 {
  name=n;
  rollno=rn;
  per=p;
 }

Stud(Studs)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }


void display()
{
 System.out.println(name+ "\t" +rollno+ "\t" +per);
}
}

class StudApp14
 {
  public static void main(String a[])
   {
    Stud s1=new Stud();
    Stud s2=new Stud("Amit",501,65.0);
    Stud s3=new Stud(s2);
    s1.display();
    s2.display();
    s3.display();
   }
 }
4

4 に答える 4

1

問題はこのコンストラクターです

Stud(Studs)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }

(タイプと変数名の間にスペースがありません):

Stud(Stud s)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }
于 2013-01-14T00:41:20.587 に答える
0

スタッド(スタッド){name = s.name; rollno = s.rollno; per = s.per; }「スタッド」とは何ですか?その定義はありません。

多分あなたは意味しました

Stud (Stud s ) {}
于 2013-01-14T00:43:26.200 に答える
0

エラーはこのコンストラクターにあります:

Stud(Studs)
{
  name=s.name;
  rollno=s.rollno;
  per=s.per;
}

あなたはこれを意味しました:

Stud(Stud s)
{
  name=s.name;
  rollno=s.rollno;
  per=s.per;
}
于 2013-01-14T00:47:13.387 に答える
0

コンパイラは、「スタッド」がタイプであり、識別子が欠落していると見なします。したがって、コンパイラエラーを厳密に追跡し、次のような識別子を追加して修正することにした場合は、次のようになります。

Stud(Studs s)

次に、次のようなエラーが発生します。

error: cannot find symbol

これは、コンパイラが「スタッド」タイプを検索し、それを見つけることができなかったことを意味します。

Javaのタイプ、値、および変数の詳細については、http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.htmlを参照してください。

于 2013-01-14T00:49:10.167 に答える