gpt4 book ai didi

C++请求(blank)中的成员(blank),调用方法时为非类类型(blank)

转载 作者:行者123 更新时间:2023-11-28 05:01:24 27 4
gpt4 key购买 nike

我正在尝试使用此页面了解人工神经网络(它正在处理中,但我在更改一些小部分的同时将其转换为 C++):http://natureofcode.com/book/chapter-10-neural-networks/但是当我运行下面的代码时,我得到了这个错误:

main.cpp: In function ‘int main()’:
main.cpp:36:7: error: request for member ‘feedforward’ in ‘idk’, which is of non-class type ‘Perceptron()’
idk->feedforward({1.0, .5});

我环顾四周,但我认为我找不到在调用方法时遇到此错误的人。代码:

#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <vector>

const double e = 2.71828182845904523536;

float S(float in){
return 1 / (1 + pow(e, -(in)));
}

double fRand(double fMin, double fMax){
double f = (double)rand() / RAND_MAX;
return fMin + f * (fMax - fMin);
}

struct Perceptron{
Perceptron(int n);
std::vector<double> weights;
int feedforward(float inputs[]);
};

Perceptron::Perceptron (int n){
weights.assign(n, fRand(-1.0, 1.0));
}

int Perceptron::feedforward(float inputs[]){
return 0; // I have this just for testing that I can call it
}

int main(){
srand(time(NULL));

Perceptron idk();
idk.feedforward({1.0, .5});

return 0;
}

最佳答案

Perceptron idk(); 是函数声明,不是对象。要么将构造函数参数传递给 idk,要么创建一个不带参数的默认构造函数。从您的代码看来,您打算将 Perceptron 与默认构造函数一起使用,因此您可能应该从 idk 声明中删除 () 到使它成为对象而不是函数的声明,并从 Perceptron 构造函数中删除 int n

关于C++请求(blank)中的成员(blank),调用方法时为非类类型(blank),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45851150/

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