0

我知道有人问过这类问题,我查看了这些回答,但仍然认为我遗漏了一些东西。我得到这个“没有匹配的构造函数错误”,因为我没有构造函数,但话虽如此,我看到的关于构造函数的所有内容都说如果你还没有在类中包含变量名,你需要它们。但是我已经这样做了,所以我需要一个构造函数吗?如果我这样做,那它应该是什么样子?我是 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 错误(在“位置”的行上):

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

2 回答 2

0

您有一个构造函数LOCATION(为什么大写不一致,顺便说一句?),它需要三个浮点数,但是该行LOCATION a尝试调用您尚未定义的默认构造函数。

于 2013-04-30T20:28:57.170 回答
0

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

于 2013-04-30T20:30:44.293 回答