gpt4 book ai didi

c++ - Visual Studio 2010- fatal error LNK1120 : 1 unresolved externals; c++

转载 作者:行者123 更新时间:2023-11-30 05:37:15 25 4
gpt4 key购买 nike

我遇到了错误:

asteroid.obj : error LNK2001: unresolved external symbol "private: static char (* Asteroid::Image)[4]" (?Image@Asteroid@@0PAY03DA) 1>C:\Users\john\Documents\Visual Studio 2010\Projects\assignment3.1\Debug\assignment3.1.exe : fatal error LNK1120: 1 unresolved externals

而且我在代码中看不出我的问题是什么。我的程序中唯一改变的是制作我的“Image”和“LoadImage”成员函数。

这就是我在头文件中的代码现在的样子(跳过一些公共(public)函数)

class Asteroid
{
private:
static const int ROWS = 3;
static const int COLUMNS = 4;
int row;
int column;
int row_size;
int column_size;
unsigned int ore_value;
static char Image[ROWS][COLUMNS];

public: static void LoadImage();
};

这就是 LoadImage() 函数在 .cpp 文件中的样子

void Asteroid::LoadImage()
{
string myline;
ifstream asteroid_image_data("asteroid.txt");
if (asteroid_image_data.fail())
{
cerr << "Asteroid image file is not available" << endl;
return;
}

for (unsigned int i = 0; i < ROWS; i++)
{
getline(asteroid_image_data, myline, '\n');
if (!asteroid_image_data)
{
cerr << "Asteroid image file is missing some data" << endl;
return;
}

for (unsigned int j = 0; j < COLUMNS; j++)
{
Image[i][j] = myline[j];
}
}
asteroid_image_data.close();
}

main.cpp 的调用就是

Asteroid::LoadImage();

最佳答案

You have to add a definition for the static char array

Here is how to do it in the header cpp file:

   char Asteroid::Image[3][4] = { {'0','0','0','0'},
{ '0','0','0','0'},
{ '0','0','0','0'}
};

或者

   char Asteroid::Image[3][4];

There is no problem like this, it works

Your header file (Header.h):

#pragma once

#include <string>

using namespace std;

class Asteroid
{
private:
static const int ROWS = 3;
static const int COLUMNS = 4;
int row;
int column;
int row_size;
int column_size;
unsigned int ore_value;
static char Image[ROWS][COLUMNS];

public: static void LoadImage();
};

Header.cpp:

#include "Header.h"
#include <fstream>
#include <iostream>

using namespace std;

void Asteroid::LoadImage()
{
string myline;
ifstream asteroid_image_data("asteroid.txt");

if (asteroid_image_data.fail())
{
cerr << "Asteroid image file is not available" << endl;
return;
}

for (unsigned int i = 0; i < ROWS; i++)
{
getline(asteroid_image_data, myline, '\n');

if (!asteroid_image_data)
{
cerr << "Asteroid image file is missing some data" << endl;
return;
}

for (unsigned int j = 0; j < COLUMNS; j++)
{
Image[i][j] = myline[j];
}
}
asteroid_image_data.close();
}

char Asteroid::Image[3][4];

主文件(Source.cpp):

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

int main() {

Asteroid::LoadImage();
}

关于c++ - Visual Studio 2010- fatal error LNK1120 : 1 unresolved externals; c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com