首页 > 解决方案 > c++ 无法将参数 1 从“_Ty”转换为 NeuralLayer*

问题描述

我正在尝试制作一个神经网络并正在研究我的前馈算法。我将一个指向下一层的指针作为参数之一传递,但它似乎不喜欢它。这是通过网络向前传播值的 for 循环及其下方的错误:

for (int layer = 0; layer < this->Topology.Num(); layer++) {
        if (layer < this->Topology.Num() - 1) {
            //The line below is line 31
            neuralLayers.at(layer).FeedForward(this->neuralLayers.at(layer + 1));
        }
    }


Severity    Code    Description Project File    Line    Suppression State
Error   C2664   'void NeuralLayer::FeedForward(NeuralLayer *)': cannot convert argument 1 from '_Ty' to 'NeuralLayer *' LeapNetUE4  F:\Doc_2\LeapNetUE4\Source\LeapNetUE4\Private\NeuralNetwork.cpp 31  
Error   C2676   binary '++': 'std::vector<Neuron,std::allocator<_Ty>>' does not define this operator or a conversion to a type acceptable to the predefined operator    LeapNetUE4  F:\Doc_2\LeapNetUE4\Source\LeapNetUE4\Private\NeuralLayer.cpp   22  

我是 C++ 新手,所以我对显示的错误并不完全熟悉。第 31 行是前馈函数调用。第 22 行指的是我的 NeuralLayer cpp 文件中以下代码的第二行:

void NeuralLayer::FeedForward(NeuralLayer* nextLayer) {
    for (int neuron = 0; neuron < this->neurons.size(); neuron++

标签: c++pointers

解决方案


推荐阅读