C++ default Constructor not being called(未调用 C++ 默认构造函数)
问题描述
我对 C++ 很陌生,所以如果我忽略了一些简单的东西,请原谅我.我有一个圈子类:
I am very new to c++ so forgive me if I have overlooked something simple. I have a class Circle:
class Circle: public Shape{
protected:
//string name;
Point focus;
float radius;
private:
public:
virtual void calculateArea();
virtual void calculatePerimeter();
Circle();
Circle(Point p, float r);
};
我有两个构造函数,其中一个是我重载的默认构造函数:
I have two constructors, one of which is the default which I have overloaded:
Circle::Circle()
{
Point p(1,1);
focus = p;
radius = 10;
name = "Circle";
calculatePerimeter();
calculateArea();
cout<<"default circle"<<endl;
}
Circle::Circle(Point p, float r)
{
focus = p;
radius = r;
name = "Circle";
calculatePerimeter();
calculateArea();
}
在我的主要内容中,我尝试使用 each 构造函数创建两个圆圈,但是使用 Circle() 创建的圆圈从未被创建.我终其一生都无法弄清楚为什么?没有错误消息或任何内容.
In my main I try to create two circles one using the each constructor, however the Circle being created with Circle() never gets created. I cannot for the life of me figure out why? There are no error messages or anything.
int main{
Circle circle(a, 3.3);
Circle c2();
}
推荐答案
Circle c2();
不创建对象,它通过名称 c2 声明一个函数,该函数不接受任何参数并返回一个 Circle 对象.如果你想创建一个对象,只需使用:
Does not create an object, it declares a function by name c2 which takes no argument and returns a Circle object. If you want to create a object just use:
Circle c2;
这篇关于未调用 C++ 默认构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:未调用 C++ 默认构造函数
基础教程推荐
- 与 CAS 的原子交换(使用 gcc 同步内置函数) 2022-01-01
- 随机插入/删除的综合向量与链表基准 2022-01-01
- 将不可复制的闭包对象传递给 std::function 参数 2021-01-01
- 如何更改 SysDateTimePick32 或 CDateTimeCtrl 的背景颜色? 2022-01-01
- 提升 ASIO 流缓冲 2021-01-01
- 如何在 C++ 中正确使用命名空间? 2022-01-01
- 为什么我们不能使用“虚拟继承"?在 COM 中? 2022-01-01
- c++ STL设置差异 2022-01-01
- C++:获取传递给函数的多维数组的行大小 2021-01-01
- 如何部分禁用 cmake C/C++ 自定义编译器检查 2021-01-01
