对我的构造函数的未定义引用

时间:2015-02-28 17:17:21

标签: c++

我有一个简单的课程,我无法实例化,我不知道为什么...... 请帮帮我!

------- ------- 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;

1 个答案:

答案 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。