方法无法解决

Method could not be resolved

本文关键字:解决 方法      更新时间:2023-10-16

在我的标题文件中:

Esame();
Esame(string);
Esame(string, Voto);

这是C 测试仪类:

//OK
Esame esame("Algoritmi e strutture dati", 30);
esame.stampaEsame();
//OK
Esame esame2("Metodi Avanzati di Programmazione");
esame2.setVoto(26);
esame2.stampaEsame();
//ERROR 
Esame esame3();
esame3.setVoto(26); //Method could not be resolved
esame3.stampaEsame(); //Method could not be resolved

代码根本没有编译。为什么如果对象是在上述代码中使用同一类创建的?

esame3() do'd date default构造函数。在您的情况下,编译器认为您已声明了方法

应该是

Esame esame3;

Esame esame3=Esame();

使用new创建对象将创建一个动态分配的对象。

在这种情况下,您的班级必须像这样的pointer

Esame *esame3=new Esame;

您必须使用->而不是.来访问成员方法或变量。

esame3->method1();
esame3->varable1;

Esame esame3();是函数声明。在这种情况下,esame3不命名对象。它声明了一个称为esame3的函数,该函数不采用参数,并返回类型Esame的对象。

这称为最烦人的解析。

要使用默认构造函数创建对象,请使用Esame esame3;(无括号):

Esame esame3;
esame3.setVoto(26); 
esame3.stampaEsame();