我有一个简单的课程,我无法实例化,我不知道为什么...... 请帮帮我!
------- ------- Test.cpp的
#include<iostream>
using namespace std;
#include "meteo.h"
int main()
{
Meteo meteo;
}
------- meteo.h ---------
#ifndef METEO_H
#define METEO_H
class Meteo
{
public:
Meteo();
int Get(int i);
private:
char *list[];
};
#endif
------- -------- meteo.cpp
#include "meteo.h"
Meteo::Meteo()
{
list[]("Sec","Venteux","Humide");
}
int Meteo::Get(int i)
{
return list[i];
}
我收到错误:&#34;未定义引用`Meteo :: Meteo()&#39;&#34;
答案 0 :(得分:0)
似乎问题是编译器在编译构造函数时发出错误
Meteo::Meteo()
{
list[]("Sec","Venteux","Humide");
}
并没有生成对象模块。
此记录
list[]("Sec","Venteux","Humide");
无效。
尝试更改类定义,如
class Meteo
{
public:
Meteo();
int Get(int i);
private:
const char *list[3];
};
并定义构造函数,如
Meteo::Meteo() : list { "Sec","Venteux","Humide" }
{
}
另一个原因可能是您没有在项目中包含对象模块meteo。
考虑到这个成员函数
int Meteo::Get(int i)
{
return list[i];
}
也错了。数组的元素类型是const char *
而不是int。