мой проект содержит несколько классов (1 из них - Point3D), а также cpp (CreatePoint.cpp) и заголовочный файл (CreatePoint.h).
мой файл stdafx.h
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
#include "CreatePoint.h"
#include "Point3D.h"
#include "Vector3D.h"
#include "Sys.h"
мой файл CreatePoint.h
#include "stdafx.h"
#pragma once
#include "Point3D.h"
//*******************************************************************
void initialise();
//*******************************************************************
Point3D *get_point(int);
//*******************************************************************
int get_index(Point3D *);
//*******************************************************************
Point3D *create_point();
//*******************************************************************
void del_point(Point3D *);
//*******************************************************************
void destruct_point();
мой файл CreatePoint.cpp
#include "stdafx.h"
#include "CreatePoint.h"
int counter;
int size = 50;
Point3D *point[];
//*******************************************************************
void initialise()//run this func each time point[] is created
{
counter = 0;
for(int i = 0; i<size; i++)
{
point[i] = '\0';
}
}
//*******************************************************************
Point3D *get_point(int index)
{
return point[index];
}
//*******************************************************************
int get_index(Point3D *p)
{
for(int i = 0; i<size; i++)
{
if(point[i] == p)
return i;
}
}
//*******************************************************************
Point3D *create_point()
{
point[counter] = new Point3D;
counter++;
return point[counter];
}
//*******************************************************************
void del_point(Point3D *p)
{
int d = get_index(p);
delete point[d];
}
//*******************************************************************
void destruct_point()
{
delete [] point;
}
Я получаю ошибку во время выполнения:
CreatePoint.obj : error LNK2001: unresolved external symbol "class Point3D * * point" (?point@@3PAPAVPoint3D@@A)
1>C:\Documents and Settings\my documents\visual studio 2010\Projects\Maths\Debug\Maths.exe : fatal error LNK1120: 1 unresolved externals
Я искал в Интернете, и в основном причина такого сбоя не в том, что stdafx.h находится в 1-й строке каждого файла ... но я уже включил его.
я также получаю некоторые предупреждения для последней функции destruct_point () ->
\maths\maths\createpoint.cpp(51): warning C4154: deletion of an array expression; conversion to pointer supplied