我正在做一个练习,选择并输入一种具有类继承的四边形,然后检查它的方法。然而,我的主函数遇到错误(错误C2065 'a':未声明的标识符。错误C2371“a”:重新定义;不同的基本类型。E0020标识符“a”未定义)。请帮助我更正
#pragma once
#include <iostream>
#include "Point.h"
#include "Quadrangle.h"
#include "Trapezoid.h"
#include "Parallelogram.h"
#include "Rectangle.h"
#include "Square.h"
using namespace std;
int main() {
int choice = 0;
do {
cout << "\n----------MENU----------" << endl;
cout << "1. Trapezoid" << endl;
cout << "2. Parallelogram" << endl;
cout << "3. Rectangle" << endl;
cout << "4. Square" << endl;
cout << "----------" << endl;
cout << "Please choose: ";
cin >> choice;
switch (choice) {
case 1:
Trapezoid a;
break;
case 2:
Parallelogram a;
break;
case 3:
Rectangle a;
break;
case 4:
Square a;
break;
default:
cout << "Please entry again" << endl;
}
} while (choice < 1 || choice > 4);
a.Set();
a.CheckCondition();
cout << "Perimeter = " << a.Perimeter() << endl;
cout << "Area = " << a.Area() << endl;
system("pause");
return 0;
}
请帮我声明变量“a”以避免错误。
1条答案
按热度按时间qv7cva1a1#
你在switch语句中声明了变量
a
,所以在这个语句之外是不知道的(这个变量是switch语句的本地变量)。为了能够在语句之后使用这个变量,你必须在进入switch语句甚至while循环之前声明它。因为
Qudrangle
是一个抽象类,所以a
必须是一个指针,因为Qudrangle
不能被示例化!