0

別の cpp ファイルで (関数のリストを含む) cpp ファイルから関数を呼び出そうとしています。ヘッダー ファイルを使用して、両方の cpp ファイルで関数プロトタイプを設定しています。私の問題は、これを取得していることです。 LNK2019 エラー。何が間違っているのかわかりません。私はいくつかのバリエーションを行ったり来たりしてきましたが、現在のものは、私が読んだものに基づいて最も正しいようです. 私はこれに何時間も取り組んでいて、たくさんのスレッドを読んでいますが、この問題を説明するものは何もないようです。私はMicrosoft Visual Studio 2012を使用しています

これはヘッダー ファイル Rectangle.h です。

#pragma once
class Rectangle
{
private:
    int width, height; 
    double gravWidth, gravHeight;
public:
    Rectangle();
    double getAreaBig();
    double getAreaSmall();
    int getPerimeter();
    void getLength(int b);
    void getWidth(int a);
    int setLength();
    int setWidth();

    ~Rectangle();
};

これは、関数を含む cpp ファイル、Rectangle.cpp です。

#include <iostream>
#include "Rectangle.h"


using namespace std;


Rectangle::Rectangle()
{
    width = 1;
    height = 1;
    gravWidth = .5;
    gravHeight = .5;
}
double Rectangle::getAreaBig ()
{
    return double ((width * height) - (gravWidth *  gravHeight));
}

double Rectangle::getAreaSmall()
{
    return ((gravWidth) * ( gravHeight));
}

int Rectangle::getPerimeter()
{
    return (2 * (width + height));
}

void Rectangle::getLength(int b)
{
    height = b;
    gravWidth = (1/2 * width);
}
void Rectangle::getWidth(int a)
{
    width = a;
    gravHeight = (1/2 * height);
}

int Rectangle::setLength()
{
    return height;
}
int Rectangle::setWidth()
{
    return width;
}

以下はapp.cppファイルです。これはエラーが発生している場所です。イタリック体はエラーが指しているように見える場所です

#include <iostream>
#include "Rectangle.h"
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
#include <string>
#include <sstream>
#include <cstddef> 

using namespace std;

int main ()
{
    int const  WIDTH = 10;
    setprecision(2);

    int length = 0;
    int width = 0;

    cin >> width;
    cin >> length;

    Rectangle garden;
    Rectangle gravel;


    garden.getLength(length);
    garden.getWidth(width);

    cout << "Length of lawn: " << garden.setLength() << "Width of lawn: " << garden.setWidth();
    cout << "Cost of grass: " << garden.getAreaBig();
    cout << "Length of gravel: ";
    cout << "Width of gravel: ";
    cout << "Cost of gavel: ";
    system ("pause");


}
4

2 に答える 2

0

最初に目にするのは、長方形をインスタンス化していないことです。

于 2013-04-23T04:23:12.987 に答える
0

定義についてはどうですか

〜長方形();

どこか?デストラクタが何もしない場合は、ヘッダー ファイルに空の本体を指定できます。

〜長方形(){};

(念のため、仮想化してください。これは常に良い習慣です。)

于 2013-04-23T08:24:10.443 に答える