类型 'float*' 和 'float*' 到二进制 'operator*' 的无效操作数
Invalid operands of types 'float*' and 'float*' to binary 'operator*'
我不知道为什么会出现此错误。就像 a*a
将 a*
视为指针(float*
到 float*
是否与 float
到 float
相同)。显然,当我在子 classes 中声明 a
时,问题就得到了解决,但关键是我希望我的子 classes 自动从我的父 [=25] 那里得到它=].
您有未定义的行为,因为 f
未初始化:
GeometrijskaFigura *f;
int x;
std::cin >> x;
f->setA(x); // UB: use uninitialized f.
应该是
int a;
std::cin >> a;
Jednakostranicni j;
j.setA(a);
std::cout << "Jednakostranicni-P: " << a.P() << " O: " << a.O() << std::endl;
Kvadrat k;
k.setA(a);
std::cout << "Kvadrat-P: " << k.P() << " O: " << k.O() << std::endl;
Krug krug;
krug.setA(a);
std::cout << "Krug-P: " << krug.P() << " O: " << krug.O() << std::endl;
我不知道为什么会出现此错误。就像 a*a
将 a*
视为指针(float*
到 float*
是否与 float
到 float
相同)。显然,当我在子 classes 中声明 a
时,问题就得到了解决,但关键是我希望我的子 classes 自动从我的父 [=25] 那里得到它=].
您有未定义的行为,因为 f
未初始化:
GeometrijskaFigura *f;
int x;
std::cin >> x;
f->setA(x); // UB: use uninitialized f.
应该是
int a;
std::cin >> a;
Jednakostranicni j;
j.setA(a);
std::cout << "Jednakostranicni-P: " << a.P() << " O: " << a.O() << std::endl;
Kvadrat k;
k.setA(a);
std::cout << "Kvadrat-P: " << k.P() << " O: " << k.O() << std::endl;
Krug krug;
krug.setA(a);
std::cout << "Krug-P: " << krug.P() << " O: " << krug.O() << std::endl;