我意识到这种类型的问题已经被问到,我看了看那些回答,但仍然认为我错过了一些东西。我得到这个“没有匹配的构造函数错误”,因为我没有构造函数,但是据说,我所看到的关于构造函数的所有内容都表示,如果您尚未在类中包含变量名称,则需要它们。但我已经这样做了,所以我需要一个构造函数吗?如果我这样做,那么它应该是什么样子?我是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;
那么这是否意味着我需要另一个构造函数?我的老师做了这一行:LOCATION a; SensorNode s1(“脉冲”,15.9,-30.1,0,157,2.0); 我看到它的参数与构造函数不匹配。但我不太明白。我应该做另一个构造函数吗?或者是调用一个我还没有构建的函数? – Acoustic77 2013-04-30 22:43:46
你可以给出'a'三个参数(例如'LOCATION a(1.2,3.4,5.6);'in),或者你可以在你的类定义中提供一个默认的构造函数LOCATION()。 – Matthias 2013-05-01 04:13:32
哦!得到它了!谢谢马提亚斯! – Acoustic77 2013-05-01 18:18:40