-3

我有一个包含类的.h 和两个.cpp,一个是主要的,另一个是功能。

我的编译器给了我这些错误

  • Functions.cpp:在成员函数“void Flandre::add()”中:
  • Functions.cpp:10:3:错误:âcinâ 未在此范围内声明
  • Functions.cpp:12:33:错误:âstrlenâ 未在此范围内声明
  • Functions.cpp:16:6:错误:âcoutâ 未在此范围内声明
  • Functions.cpp:16:57:错误:未在此范围内声明“endl”
  • Functions.cpp:21:7:错误:âcoutâ 未在此范围内声明
  • Functions.cpp:21:53: 错误: âendlâ 未在此范围内声明
  • Functions.cpp:27:9:错误:âiâ 的名称查找已更改为 ISO âforâ 范围 [-f
  • Functions.cpp:27:9:注意:(如果您使用“-fpermissive”G++ 将接受您的代码)
  • Functions.cpp:27:16:错误:“KYUU”未在此范围内声明
  • Functions.cpp:32:6:错误:âcoutâ 未在此范围内声明
  • Functions.cpp:32:57:错误:未在此范围内声明“endl”
  • Functions.cpp:35:17:错误:â[â 标记之前的预期主表达式
  • Functions.cpp:37:14:错误:â[â 标记之前的预期 unqualified-id
  • Functions.cpp:38:14: 错误: â[â 标记之前的预期 unqualified-id
  • Functions.cpp:39:14:错误:â[â 标记之前的预期 unqualified-id

我认为这与函数中的#include 标头有关

新程序2.cpp

>#include <iostream>
#include <string>
#include "newprogram2.h"

Functions.cpp 缺少某些部分,但我只是希望它能够得到遵守,这样我就可以让 add() 首先工作。

#include "newprogram2.h"

新程序2.h

#ifndef NEWPROGRAM2_H
#define NEWPROGRAM2_H
#include<string>
using namespace std;
    #endif
4

1 回答 1

1

您必须为要使用的功能包含正确的标题。

因为cincout而且endl您需要#include <iostream>,您忘记在您的第二个 .cpp 文件中执行此操作

编译器无法识别strlen为函数,因为它不在<string>(参见http://www.cplusplus.com/reference/string/)但在<string.h>(参见http://www.cplusplus.com/reference/cstring/strlen /)。

我建议您使用size()or length(),这些都在 中<string>,这两个都可以在std::string对象上调用。


Functions.cpp:27:16: error: âKYUUâ was not declared in this scope

显示此错误是因为您尝试访问在另一个 .cpp 文件中声明的变量。您尝试访问它的 .cpp 文件不知道此变量。您可以通过将变量移动到头文件中来解决此问题。


Functions.cpp:27:9: error: name lookup of âiâ changed for ISO âforâ scoping

这可以通过改变这个来解决

for(i=0;i<=KYUU;i++)

对此

for(int i=0;i<=KYUU;i++)

Functions.cpp:35:17: error: expected primary-expression before â[â token
Functions.cpp:37:14: error: expected unqualified-id before â[â token
Functions.cpp:38:14: error: expected unqualified-id before â[â token
Functions.cpp:39:14: error: expected unqualified-id before â[â token

显示这些错误是因为您尝试直接在类上调用函数,而不是从该类实例化的对象,例如 this Flandre[i].getid()。你不能这样做,而是创建一个对象并调用对象上的函数。

于 2013-03-10T23:58:12.677 回答