gpt4 book ai didi

c++ - 之前预期的主要表达。调用类函数时

转载 作者:太空狗 更新时间:2023-10-29 20:25:49 24 4
gpt4 key购买 nike

对于类(class),我们正在制作一个程序,以分析和经验的方式计算 T(n)。我们的函数应该在一个单独的类 f 中,我们应该使用一个函数从文件中读取输入以用作“n”并调用函数来打印值。当我尝试调用分析函数作为打印函数的参数时出现此错误:

p03.cpp:61:23: error: expected primary-expression before â.â token
p03.cpp:61:34: error: expected primary-expression before â.â token

我确定这是某个地方的愚蠢拼写错误,但我找不到它。是的,我在 p03.cpp 和 F03.cpp 中包含了 F03.h。这是导致错误的代码:

void analysis(istream& i) {

//Code Fragment 0 analysis
PrintHead(cout, "Code Fragment 0");
for(;;) {
int n;
i >> n;
if (i.eof()) break;
//Next line is line 61
PrintLine(cout, n, f.af00(n), f.ef00(n));
}
}

以下是 p03.cpp 中的打印函数:

    void PrintHead(ostream& o, string title) {
o << title << endl;
o << setw(20) << "n" << setw(20) << "Analytical" << setw(20) << "Empirical";
o << endl;
}

void PrintLine(ostream& o, int n, int a, int e) {
o << setw(20) << n << setw(20) <<a << setw(20) << e << endl;
}

这是 F03.h 中 f 的类声明:

#ifndef F03_h
#define F03_h 1

#include <cstdlib>
#include <cstring>
#include <iostream>
#include <fstream>
#include <string>

class f {

public:
int ef00(int n);

int af00(int n);

};

#endif

实现如下:

                            #include <cstdlib> 
#include <cstring>
#include <iostream>
#include <fstream>
#include <string>

#include "F03.h"

int f::ef00(int n)
{ int t=0;
int sum=0; t++;
int i=0; t++;
while (i<n) { t++;
sum++; t++;
i++; t++;
} t++;
return t;
}

int f::af00(int n)
{ return 3*n+3;
}

非常感谢任何见解!

最佳答案

f::af00f::ef00 是类 f 的非静态成员,因此您需要在实例。例如

f myf;
PrintLine(cout, n, myf.af00(n), myf.ef00(n));

或者,将方法设为静态,并将它们称为 f::af00(n) 等。

class f 
{
public:
static int ef00(int n);
static int af00(int n);
};

然后

PrintLine(cout, n, f::af00(n), f::ef00(n));

关于c++ - 之前预期的主要表达。调用类函数时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22580902/

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