不是将Forma*更改为Forma的正确构造

  • 本文关键字:Forma c++ instance-variables
  • 更新时间 :
  • 英文 :


main中,编译器给我的错误是没有正确的构造将Forma*更改为Forma。错误发生在这些行上。

Forma forma = new Forma(nombre "Cuadrado", color "azul");
Rectangulo rectangulo = new Rectangulo(nombre "Rectangulo", color "Negro", ladoMayor 5, ladoMenor 3);

错误的描述

对不起,我的写作,英语不是我的第一语言。我是编码和C++方面的新手。

#include <iostream>
using namespace std;
class Forma {
protected:
string nombre;
string color;
public:
Forma(string nombre, string color) {
this->nombre = nombre;
this->color = color;
}
string getNombre() {
return nombre;
}
string getColor() {
return color;
}
void setColor(string color) {
cout << "El nuevo color sera: " + color;
this->color = color;
}
virtual string imprimir() {
cout << "Nombre: " + nombre + "nColor: " + color;
return "Nombre: " + nombre + "Color: " + color;
}
void obtenerColor() {
cout << "El color actual es: " + color;
}
};

这是迄今为止第一类无错误

class Rectangulo : public Forma {
private:
double ladoMayor;
double ladoMenor;
double area;
double perimetro;
public:
Rectangulo (string nombreForma, string color, double ladoMayor, double ladoMenor): Forma(nombreForma, color){
this->ladoMayor = ladoMayor;
this->ladoMenor = ladoMenor;
}
double getLadoMayor() { return ladoMayor; }
double getLadoMenor() { return ladoMenor; }
double Area() {
cout << "El area es: " << ladoMayor * ladoMenor;
return area;
}
double Perimetro() {
cout << "El perimetro es: " << ((2 * ladoMayor) + (2 * ladoMenor));
return perimetro;
}
string imprimir() {
cout << "Nombre: " + nombre +
"ncolor: " + color +
"n Lado Mayor: " << ladoMayor <<
"n Lado Menor: " << ladoMenor;
return 0;
}
};

在函数imprimir中,我有一个问题,如果我想返回所有值,我该怎么做?

class Programa_prueba {
int main(int argc, char** argv) {
Forma forma1 = new Forma(nombre "Cuadrado", color "azul");
Rectangulo rectangulo = new Rectangulo(nombre "Rectangulo", color "Negro", ladoMayor 5, ladoMenor 3);
forma.imprimir();
forma.obtenerColor();
forma.setColor("Amarillo");
cout << "n";
Rectangulo rectangulo1;
rectangulo1.imprimir();
rectangulo.Area();
rectangulo.Perimetro();
}
};

Forma forma是静态内存分配,而分配new是动态内存分配你必须:

Forma forma(nombre "Cuadrado", color "azul"); // static memory allocation

或:

Forma *forma = new Forma(nombre "Cuadrado", color "azul"); // dynamic memory allocation

相关内容

  • 没有找到相关文章

最新更新