2013-01-14 29 views
-6

任何人都可以告诉我为什么程序在第三部分执行失败,即当我传递复制构造函数吗? 它说,该标识符预期梭哈附近(螺栓)我想检查并运行下面的代码,但它给了我预期的错误标识符

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(); 
    } 
} 
+0

有没有在您的实际代码梭哈和S之间的空间?它看起来像螺柱在这里。 –

+0

没有空间 – Akshay

+0

问题已解决.... – Akshay

回答

0

螺柱(螺柱) { name = s.name; rollno = s.rollno; per = s.per; } 什么是“螺栓”?没有定义它。

也许你的意思

Stud (Stud s) {} 
1

问题是这种构造

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

应该(你缺少的类型和变量名之间的空格):

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

但我要问的问题是什么? – Akshay

+0

@Akshay:问题是你缺少类型,见其他constrcutors,其中字符串类型和n是变量的名称。 – kosa

+0

感谢您的时间... – Akshay

0

的错误是在这个构造:

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

您的意思是:

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

编译器认为, “铆钉” 是一个类型,缺少一个标识符。所以,如果你遵循编译器错误严格,并决定通过增加像这样的标识解决它:

Stud(Studs s) 

然后你会得到一个错误说:

error: cannot find symbol 

这意味着,编译器搜索的键入“螺栓”并找不到它。

更多关于Java类型,值和变量在这里:http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html

相关问题