######如题,我想用C++类的方法求坐标系中四边形周长和面积
这是我函数的实现代码
#include <iostream>
#include <math.h>
#include "work.h"
using namespace std;
double work::perimeter()
{
double a,b,c,d;
a = sqrt((x[1] - x[0]) * (x[1] - x[0]) + (y[1] - y[0]) * (y[1] - y[0]));
b = sqrt((x[2] - x[1]) * (x[2] - x[1]) + (y[2] - y[1]) * (y[2] - y[1]));
c = sqrt((x[3] - x[2]) * (x[3] - x[2]) + (y[3] - y[2]) * (y[3] - y[2]));
d = sqrt((x[0] - x[3]) * (x[0] - x[3]) + (y[0] - y[3]) * (y[0] - y[3]));
return (a + b + c + d);
}
double work::area()
{
double a, b, c, d;
a = sqrt((x[1] - x[0]) * (x[1] - x[0]) + (y[1] - y[0]) * (y[1] - y[0]));
b = sqrt((x[2] - x[1]) * (x[2] - x[1]) + (y[2] - y[1]) * (y[2] - y[1]));
c = sqrt((x[3] - x[2]) * (x[3] - x[2]) + (y[3] - y[2]) * (y[3] - y[2]));
d = sqrt((x[0] - x[3]) * (x[0] - x[3]) + (y[0] - y[3]) * (y[0] - y[3]));
double e = sqrt((x[2] - x[0]) * (x[2] - x[0]) + (y[2] - y[0]) * (y[2] - y[0]));
double p1 = (a + b + e) / 2;
double p2 = (c + d + e) / 2;
double s1 = sqrt(p1 * (p1 - a) * (p1 - b) * (p1 - e));
double s2 = sqrt(p2 * (p2 - c) * (p2 - d) * (p2 - e));
return (s1 + s2);
}
这是我的头文件代码
#pragma once
class work
{
public:
double x[4], y[4];
work();
work(double x[], double y[]);
double perimeter();
double area();
};
这是我的测试代码
#include <iostream>
#include"work.h"
using namespace std;
int main()
{
double x[4] = { 1,1,2,2 };
double y[4] = { 1,2,2,1 };
work A(x, y);
cout << A.perimeter();
}
运行后,这是我的报错结果
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "public: __cdecl work::work(double * const,double * const)" (??0work@@QEAA@QEAN0@Z),函数 main 中引用了该符号