C++;使用从抽象类继承的默认构造函数 我是C++新手,遇到以下代码有问题:>/P> #include "stdafx.h" #include <iostream> using namespace std; class Shape { public: virtual void area() = 0; virtual void perimeter() = 0; virtual void volume() = 0; }; class Circle : public Shape { protected: int r; public: Circle() { r = 0; } Circle(int num) { r = num; } void area() { double area = (r * r) * (3.14); cout << "The area of the circle = " << area << endl; } void perimeter() { double perimeter = 2 * (3.14) * r; cout << "The circumference of the circle = " << perimeter << endl; } void volume() { cout << "You are tapping into another dimension. AHHH Error!" << endl; } }; class Sphere : public Circle { protected: int r; public: Sphere() :Circle() { r = 0; } Sphere(int num) : Circle(num) { r = num; } void area() { double area = 4 * (3.14) * (r * r); cout << "The surface area of the sphere = " << area << endl; } void perimeter() { double perimeter = 2 * (3.14) * r; cout << "The circumference of the sphere = " << perimeter << endl; } void volume() { double volume = ((4 / 3) * (3.14) * (r * r * r)); cout << "The volume of the sphere = " << volume << endl; } }; int _tmain(int argc, _TCHAR* argv[]) { Shape *ptr; Circle c1(5); Circle c2(); Sphere sp1(6); Sphere sp2(); ptr = &c1; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &c2; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &sp1; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &sp2; ptr->perimeter(); ptr->area(); ptr->volume(); return 0; } #包括“stdafx.h” #包括 使用名称空间std; 阶级形态 { 公众: 虚空面积()=0; 虚空周长()=0; 虚空体积()=0; }; 班级圈子:公共形态 { 受保护的: INTR; 公众: 圈() { r=0; } 圆(整数) { r=num; } 空区() { 双面积=(r*r)*(3.14); cout

C++;使用从抽象类继承的默认构造函数 我是C++新手,遇到以下代码有问题:>/P> #include "stdafx.h" #include <iostream> using namespace std; class Shape { public: virtual void area() = 0; virtual void perimeter() = 0; virtual void volume() = 0; }; class Circle : public Shape { protected: int r; public: Circle() { r = 0; } Circle(int num) { r = num; } void area() { double area = (r * r) * (3.14); cout << "The area of the circle = " << area << endl; } void perimeter() { double perimeter = 2 * (3.14) * r; cout << "The circumference of the circle = " << perimeter << endl; } void volume() { cout << "You are tapping into another dimension. AHHH Error!" << endl; } }; class Sphere : public Circle { protected: int r; public: Sphere() :Circle() { r = 0; } Sphere(int num) : Circle(num) { r = num; } void area() { double area = 4 * (3.14) * (r * r); cout << "The surface area of the sphere = " << area << endl; } void perimeter() { double perimeter = 2 * (3.14) * r; cout << "The circumference of the sphere = " << perimeter << endl; } void volume() { double volume = ((4 / 3) * (3.14) * (r * r * r)); cout << "The volume of the sphere = " << volume << endl; } }; int _tmain(int argc, _TCHAR* argv[]) { Shape *ptr; Circle c1(5); Circle c2(); Sphere sp1(6); Sphere sp2(); ptr = &c1; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &c2; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &sp1; ptr->perimeter(); ptr->area(); ptr->volume(); ptr = &sp2; ptr->perimeter(); ptr->area(); ptr->volume(); return 0; } #包括“stdafx.h” #包括 使用名称空间std; 阶级形态 { 公众: 虚空面积()=0; 虚空周长()=0; 虚空体积()=0; }; 班级圈子:公共形态 { 受保护的: INTR; 公众: 圈() { r=0; } 圆(整数) { r=num; } 空区() { 双面积=(r*r)*(3.14); cout,c++,inheritance,abstract-class,virtual-functions,default-constructor,C++,Inheritance,Abstract Class,Virtual Functions,Default Constructor,使用无参数构造函数构建对象的正确方法是 Circle c2; 不是 Circle c2(); 后一行是函数声明 Circle c2(); 它不声明一个圆;它声明一个函数 只需写圈c2; 下面的Sphere声明也是如此 您的提示是,错误消息说'Circle(uu cdecl*)(void),这是一种函数指针类型。您从哪里得到这些错误?在哪一行?我从包含“ptr=&c2;”和“ptr=&sp2;”的行中得到它们,这只是下次的提示:请减少您在这里发布的代码,以获得一个MWE(最简单的工作示例

使用无参数构造函数构建对象的正确方法是

 Circle c2;
不是

 Circle c2();
后一行是函数声明

Circle c2();
它不声明一个
;它声明一个函数

只需写
圈c2;

下面的
Sphere
声明也是如此


您的提示是,错误消息说
'Circle(uu cdecl*)(void)
,这是一种函数指针类型。

您从哪里得到这些错误?在哪一行?我从包含“ptr=&c2;”和“ptr=&sp2;”的行中得到它们,这只是下次的提示:请减少您在这里发布的代码,以获得一个MWE(最简单的工作示例)。这将增加您获得响应的机会。您可以在此处轻松完成此操作。没有人希望解析几十行不相关的代码。此代码示例的绝大多数都不是演示程序所必需的。创建一个下一次:在这样做时,您甚至可能会自己发现问题。这称为调试。修好了!!!Wowwww…谢谢!我真的弄明白了…我真的很感谢你的帮助(妈妈| |先生)!修好了!!!Wowww…谢谢!我真的弄明白了…我真的很感谢你的帮助(妈妈| |先生)!