“没有用于初始化的匹配构造函数...”

时间:2013-04-30 18:34:17

标签: c++

我知道这类问题已被提出,我查看了这些答案,但仍然认为我错过了一些东西。我得到这个“没有匹配的构造函数错误”,因为我没有构造函数,但话虽如此,我所看到的关于构造函数的所有内容都说如果你还没有在类中包含变量名,那么你需要它们。但我已经这样做了,所以我需要一个构造函数吗?如果我这样做,那么它应该是什么样的?我是C ++的新手,参加课程,这是一项任务。

这是带有类声明的sensor_node.h文件:

#ifndef SENSORNODE_H
#define SENSORNODE_H

#include <iostream>

class LOCATION {
    float lat, longi, height;

public:
    LOCATION (float lat, float longi, float height);
    void setx(float xx);
    void sety(float yy);
    void setz(float zz);
    void print();
};

class SensorNode {
    char* NodeName;
    int NodeID;
    LOCATION Node1;
    float batt;
    int func;


public:
    SensorNode(char *n, float x, float y, float z, int i, float ah);
    void print();
    void setOK(int o);
    int getOK();
    void setLOC(float longi, float lat, float h);
};

#endif /* defined(__Project_3__sensor_node__) */

这是我的main.cpp错误(在“LOCATION”行上):

#include <iostream>
using namespace std;


#include "sensor_node.h"

int main() {
    LOCATION a; SensorNode s1("Pulse",15.9,-30.1,0,157,2.0);
    int hold;

2 个答案:

答案 0 :(得分:0)

你有LOCATION的构造函数(为什么不一致的大写,偶然?)需要三个浮点数,但是行LOCATION a试图调用你没有定义的默认构造函数。

答案 1 :(得分:0)

实际上,你有一个构造函数:LOCATION (float lat, float longi, float height)。由于它是唯一的,C ++尝试应用它。但是,您没有提供任何参数,因此此构造函数不匹配。