gpt4 book ai didi

C++类错误'const class Number'没有名为 'intValue'的成员

转载 作者:行者123 更新时间:2023-11-30 04:43:56 25 4
gpt4 key购买 nike

如果我有测试代码:

Number const * n = nullptr;
double val = 0;
std::cin >> val;
n = new Integer( int( val ));
if( n->intValue() != int( val )) {
std::cout << "intValue() is wrong\n";
}

并且我有一个 Integer 类,以便能够计算 n->intValue(),这是否意味着我必须在 Integer 类中创建一个方法调用 intValue()?

我试图创建一个方法,但它显示错误“const class Number”没有名为“intValue”的成员。

我的类(class)代码:

#include <iostream>

using namespace std;

// Base class Number
class Number{
public:
Number(double theVal){
val = theVal;
cout << "Created a number with value " << val << endl;
}
protected:
double val;
};

class Integer : public Number{
public :
Integer(int val):Number(val){\
cout << "Created an integer with value " << val << endl;
}

int intValue(){
return (int)val;
}
double doubleValue(){
return (double)val;
}

};

class Double : public Number{
public :
Double(double val):Number(val){
cout << "Created a double with value " << val << endl;}

int intValue(){
return (int)val;
}
double doubleValue(){
return (double)val;
}
};

最佳答案

我猜 n 是 Number* 类型,所以编译器无法预先知道它是否是子类之一。您可以添加

virtual int intValue() = 0;

给你的父类。参见纯虚函数 here

关于C++类错误'const class Number'没有名为 'intValue'的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com