gpt4 book ai didi

c++ - 在 .cpp 中为派生类实现构造函数?

转载 作者:行者123 更新时间:2023-11-30 00:36:11 25 4
gpt4 key购买 nike

我的问题很新手,是的,我已经广泛查阅了它,但是当我做这些事情时,我发现在线 Xcode 给我错误。

基本上,我只是好奇如何为派生类实现构造函数。我的类名为“Sensor”,派生类是 digitalSensor 和 analogSensor。

Here's my sensor.h:

#ifndef __Program_6__sensor__
#define __Program_6__sensor__

#include <iostream>

class sensor {
char* SensorName;
float energyDraw;
int functioning;
int onoff;

public:
sensor(char*n, float pc);
virtual void print();

void setOK(int K);
int getOK();
void setOnOff(int n);
int getOnOff();
};
//---------
class digitalSensor : public sensor {
int reading;

public:
digitalSensor(char*n, float pc);
virtual void print();
void setCurrentReading(int r);
int getCurrentReading();
};

class analogSensor : public sensor {
int Reading;
int minRead;
int maxRead;

public:
analogSensor(char *n, float pc, int mm, int mx);
virtual void print();
void setCurrentReading(int r);
int getCurrentReading();
};


#endif /* defined(__Program_6__sensor__) */

这是我的 sensor.cpp,您可以在底部看到我的 digitalSensor 工作的开始。

#include "sensor.h"
#include "definitions.h"
using namespace std;

//--------SENSOR CLASS------------//
sensor::sensor(char *n, float pc) {

SensorName = (char*)malloc(strlen(n)+1);
energyDraw = pc;
functioning = WORKING;
onoff = OFF;
}
void sensor::print() {
cout << " Sensor: " << SensorName;
cout << " Power Consumption: " << energyDraw;
if (functioning == WORKING) {
cout << "\nSensor is functioning correctly\n";

if (onoff == ON) {
cout << "Sensor is On";
}
if (onoff == OFF) {
cout << "Sensor is Off";
}

}
if (functioning == NOTWORKING) {
cout << "Sensor is not functioning correctly";
}
}
void sensor::setOK(int k) {
functioning = k;
}
int sensor::getOK() {
return functioning;
}
void sensor::setOnOff(int n) {
onoff = n;
}
int sensor::getOnOff() {
return onoff;
}
//---------------------------------//

//*********DIGITAL SENSOR**********//

sensor digitalSensor::digitalSensor(char *n, float pc) {

}

简而言之:我需要为数字传感器类创建一个构造函数。我错过了什么,我该怎么做?提前感谢您提供这方面的任何帮助或知识!

最佳答案

像这样实现它的构造函数:

digitalSensor::digitalSensor(char*n, float pc) : sensor(n, pc)
{
}

如您所见,它不返回任何内容,而是调用其父级的构造函数。

但是你这样做是错误的:

sensor digitalSensor::digitalSensor(char *n, float pc) {
^^^^^^ constructors shall not return anything
}

关于c++ - 在 .cpp 中为派生类实现构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16744363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com