C++ C++;写入“U函数写入”;“南”;而不是适当的值

C++ C++;写入“U函数写入”;“南”;而不是适当的值,c++,C++,我有一个任务,要用一个数字创建一个类,我必须使用构造函数来实现它。问题是我的写函数只正确地写给定电路的值,而不是极点或电路。而不是写“南” 我添加了“debbuging couts”来检查函数是否正确计算了极点和电路 #include <iostream> #include <cmath> class Figura { protected: double pole; double circuit; public: virtual double f

我有一个任务,要用一个数字创建一个类,我必须使用构造函数来实现它。问题是我的写函数只正确地写给定电路的值,而不是极点或电路。而不是写“南”

我添加了“debbuging couts”来检查函数是否正确计算了极点和电路

#include <iostream>
#include <cmath>

class Figura
{
protected:
    double pole;
    double circuit;
public:
    virtual double funkcja_pole(double A) = 0;
    virtual double funkcja_circuit(double B) = 0;
    virtual void write() = 0;

    Figura(double, double);
};

class Circle: public Figura
{
private:
    double radius;
public:
    Circle(double);

void write()
{
    std::cout << "Radius = " << radius << std::endl;
    std::cout << "Pole = " << pole << std::endl;
    std::cout << "Circuit = " << circuit << std::endl;
}
double funkcja_pole(double A)
{
    pole = 3.14 * A*A;
    std::cout << "pole:" << pole << std::endl;
}
double funkcja_circuit(double B)
{
    circuit = 3.14 * 2*B;
    std::cout << "circuit:" << circuit << std::endl;
}
};

Figura::Figura(double POLE, double CIRCUIT):
    pole(POLE), circuit(CIRCUIT) {}

Circle::Circle(double RADIUS):
    radius(RADIUS), Figura(funkcja_pole(RADIUS),funkcja_circuit(RADIUS)) {}

int main()
{
    Circle my_circle(2);
    Figura *wsk;
    wsk = &my_circle;
    wsk->write();
}
#包括
#包括
类图形
{
受保护的:
双极;
双回路;
公众:
虚拟双funkcja_极点(双A)=0;
虚拟双funkcja_电路(双B)=0;
虚空写入()=0;
图A(双,双);
};
班级圈子:公众人物
{
私人:
双半径;
公众:
圆(双);
无效写入()
{

std::cout您没有返回计算值:

double funkcja_pole(double A)
{
    double pole = 3.14 * A*A;
    std::cout << "pole:" << pole << std::endl;
    return pole;
}
双funkcja_杆(双A)
{
双极=3.14*A*A;

std::cout您没有返回计算值:

double funkcja_pole(double A)
{
    double pole = 3.14 * A*A;
    std::cout << "pole:" << pole << std::endl;
    return pole;
}
双funkcja_杆(双A)
{
双极=3.14*A*A;

std::请编辑您的问题以包含实际和预期的输出。另外,请阅读相关内容以及。无论您如何组织成员初始化列表,它总是先初始化基本类型,然后按照成员在类定义中出现的顺序初始化成员。看起来您打算初始化
radius
首先,但它不会。请听你的编译器警告,它应该告诉你你的函数不返回任何值。如果你没有警告,请使用
-Wall
编译器标志启用它们。你是对的@Yastanub-我刚刚打开了它。无论如何-我使用GNU GCC编译器,但你推荐其他更好的吗?请编辑您的问题,以包含实际和预期的输出。另外,请阅读相关内容以及。无论您如何组织成员初始化列表,它总是首先初始化基本类型,然后按照成员在类定义中出现的顺序初始化成员。看起来您想先初始化
radius
,但它不会不必。请听你的编译器警告,它应该告诉你你的函数不返回任何值。如果你没有警告,请使用
-Wall
编译器标志启用它们。你是对的@Yastanub-我刚刚打开了它。无论如何-我使用GNU GCC编译器,但你推荐其他更好的吗?你也可以得到ri
funkcja_circuit
funkcja_pole
中的局部变量的d,因为它们似乎应该初始化成员。或者希望它们更改成员,否则它们仍然应该这样做。@Yastanub哦,是的,我同意。我只是保留了局部变量,因为OP的显示。我看到您只添加了“私人:"分段到代码中-你的意思是为了让我的代码看起来更有条理而进行的任何其他改进吗?还有初始化顺序IIRCI你也可以去掉
funkcja_电路
funkcja_极
中的局部变量,因为它们似乎应该初始化成员。或者希望它们更改e成员,在这种情况下,他们仍然应该这样做。@Yastanub哦,是的,我同意。我只是保留了局部变量,因为OP的显示。我看到你只在代码中添加了“private:”段-你是说有任何其他改进使我的代码看起来更有条理吗?还有初始化顺序iirc