2015-10-13 118 views
-1

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

貌似

  1. 你還沒有實現的成員函數,或
  2. 你在一個單獨的文件中實現的成員函數,忘了把它列入創建可執行文件。
1

看起來你忘了實現構造函數Area()和Area類的方法。

0

的第一個包含丟失大於號(>)。公共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; 
}