私はC++でのプログラミングにまったく慣れていません...1年前にC#でプログラミングを始めたので、いくつかの本当に基本的なものに失敗しています...私は思います...私は3Dのポイントであるvectorと呼ばれるクラスを作成しましたヘッダーのスペースは次のようになります。
class vec3
{
double x, y, z;
public:
vec3();
vec3(double x, double y, double z);
double calculateLLength(void);
double distance(double x1, double y1, double z1);
double distance(const vec3 &vec);
~vec3(void);
};
この後、中心点が私のベクトルクラスからのベクトルであるsphereというクラスを作成することになりました。これは、これ(球のヘッダー)に似ています。
#pragma once
#include "vec3.h"
class Sphere
{
vec3 center1;
double x, y, z;
double radius1;
static const double PI;
public:
//constructs
Sphere(double x, double y, double z, double radius);
Sphere(vec3 center1, double radius);
//Methods
bool inside(const vec3 ¢er);
bool overlap(const Sphere &sphere);
double area();
double volume();
~Sphere(void);
};
私が得るエラーは次のとおりです。
エラーLNK1120:1つの未解決の外部
私はこれをグーグルで検索し、土曜日のほとんどを修正に費やしましたが、修正できませんでした。
(誰かがそれらを必要とするならば、ここにcppファイルがあります!)
Sphere.cpp:
#include "StdAfx.h"
#include "Sphere.h"
#include "vec3.h"
#include <math.h>
const double Sphere::PI = 3.1415926535;
Sphere::Sphere(double centerX, double centerY, double centerZ, double radius)
{
vec3 center(centerX, centerY, centerZ);
radius1 = radius;
}
Sphere::Sphere(vec3 center, double radius)
{
center1 = center;
radius1 = radius;
}
bool Sphere::inside(const vec3 ¢er)
{
if(radius1 < center1.distance(center))
return false;
else
return true;
}
bool Sphere::overlap(const Sphere &sphere)
{
if(this->center1.distance(sphere.center1) < radius1 + sphere.radius1)
return true;
else
return false;
}
double Sphere::area()
{
}
double Sphere::volume()
{
}
Sphere::~Sphere(void)
{
}
vec3.cpp:
#include "StdAfx.h"
#include "vec3.h"
#include <math.h>
vec3::vec3(double x, double y, double z)
{
this->x=x;
this->y=y;
this->z=z;
}
double vec3::calculateLLength()
{
return sqrt((x*x) + (y*y) + (z*z));
}
double vec3::distance(double x1, double y1, double z1)
{
return sqrt( ((this->x - x1)*(this->x - x1)) + ((this->y - y1)*(this->y - y1)) + ((this->z - z1)*(this->z - z1)) );
}
double vec3::distance(const vec3 &vec)
{
return sqrt( ((this->x - vec.x)*(this->x - vec.x)) + ((this->y - vec.y)*(this->y - vec.y)) + ((this->z - vec.z)*(this->z - vec.z)) );
}
vec3::~vec3(void)
{
}