指针,动态变量,C++
问题描述:
Errors 我一直运行此程序时收到错误。这些错误意味着什么?附上截图。 这就是问题:指针,动态变量,C++
一类区,其具有两个专用变量成员; float类型的字符串类型和area_value单位。
1)从键盘area_value和它的单位输入。计算面积的一半和四分之一,并以单位显示结果。 2)最后销毁动态变量。
#include <iostream
#include <string>
using namespace std;
class Area
{
public:
Area();
void setu(string a);
void seta(float b);
string getu();
float geta();
private:
string unit;
float area_value;
};
int main()
{
Area *p = new Area();
string a;
float f;
cout << "Enter a unit with no space: ";
getline(cin, a);
p->setu(a);
cout << "Enter a value of area: ";
cin >> f;
p->seta(f);
cout << "A half of your input = " << f/2 << endl;
cout << "A quarter of your input = " << f/4 << endl;
delete p;
return 0;
}
答
貌似
- 你还没有实现的成员函数,或
- 你在一个单独的文件中实现的成员函数,忘了把它列入创建可执行文件。
答
看起来你忘了实现构造函数Area()和Area类的方法。
答
的第一个包含丢失大于号(>)。公共Area类只定义了这些功能,而没有实现它们。变量p被定义为一个指针。
您还可以添加一半和四分之一的功能。我修改它稍微所以它与铛++ -Wall -std =编译的C++ 11 -o区域area.cpp。
#include <iostream>
#include <string>
using namespace std;
class Area {
public:
Area() {};
~Area() {};
void setu(string u) { unit = u; }
void seta(float a) { area_value = a; }
string getu() { return unit; }
float geta() { return area_value; }
float getHalf() { return area_value/2; }
float getQuarter() { return area_value/4; }
private:
string unit;
float area_value;
};
int main() {
Area p {};
string a;
float f;
cout << "Enter a unit with no space: ";
getline(cin, a);
p.setu(a);
cout << "Enter a value of area: ";
cin >> f;
p.seta(f);
cout << "A half of your input = " << p.getHalf() << endl;
cout << "A quarter of your input = " << p.getQuarter() << endl;
return 0;
}
请在这里发布错误信息而不是链接到图像。 –
你应该有意义地初始化你的对象。没有单位或区域初始化的“区域”有什么意义? –