指针,动态变量,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; 
} 
+2

请在这里发布错误信息而不是链接到图像。 –

+0

你应该有意义地初始化你的对象。没有单位或区域初始化的“区域”有什么意义? –

貌似

  1. 你还没有实现的成员函数,或
  2. 你在一个单独的文件中实现的成员函数,忘了把它列入创建可执行文件。

看起来你忘了实现构造函数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; 
}