每当我构建此代码时,总是得到“错误:'GenericEnclosure :: GenericEnclosure'命名构造函数,而不是类型”。
我已经尝试过删除GenericEnclosure ::并显示新错误。
.cpp文件
GenericEnclosure::GenericEnclosure frontLeftEnclosure{name, m_leftFrontDriveMotor, m_leftFrontTurnMotor, m_leftFrontTurnEncoder, 0.1};
.h文件
class GenericEnclosure : public SwerveEnclosure {
public:
GenericEnclosure( std::string name,
frc::SpeedController& m_moveMotor,
frc::SpeedController& m_turnMotor,
rev::CANEncoder& m_encoder,
double m_gearRatio);
~GenericEnclosure();
由此,我希望它可以正确构建,但是发生了一些我无法识别的事情。我仍然不了解问题的根源,因为我是新来的,所以一切都会感激的。
编辑:我对删除GenericEnclosure ::是正确的,但是现在我收到此错误
undefined reference to `GenericEnclosure::GenericEnclosure(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, frc::SpeedController&, frc::SpeedController&, rev::CANEncoder&, double)'
答案 0 :(得分:0)
应该如何编写GenericEnclosure
的构造函数的定义的方式:
GenericEnclosure::GenericEnclosure(std::string name,
frc::SpeedController& m_moveMotor,
frc::SpeedController& m_turnMotor,
rev::CANEncoder& m_encoder,
double m_gearRatio)
{
// something goes here
}
如何声明类型GenericEnclosure
的变量:
GenericEnclosure frontLeftEnclosure{name, m_leftFrontDriveMotor, m_leftFrontTurnMotor, m_leftFrontTurnEncoder, 0.1};
GenericEnclosure::GenericEnclosure
告诉您,您在命名空间GenericEnclosure
中声明了类型为GenericEnclosure
的变量,但事实并非如此。
UPD 如果尚未定义构造函数(以及所有声明的方法),则无法声明变量,第二个错误说明了这一点。