0

上記で明らかに宣言すると、main.cpp の redo char (太字) でエラーが発生します。また、名前空間 std を使用する前にセミコロンを置くように求められる理由も知りたいです。

//ReverseString.h
#include <iostream>
#include <string>

using namespace std;

class StringClass
{
public:
string string;
int GetStringLength (char*);
void Reverse(char*);
void OutputString(char*);
void UserInputString (char*);
StringClass();
private:
    int Length;
}

//StringClass.cpp
#include <iostream>
#include <string>
#include "ReverseString.h"

;using namespace std;

void StringClass::UserInputString(char *string)
{
cout << "Input a string you would like to be reversed.\n";
cin >> string;
cout << "The string you entered: " << string << endl;
}
int StringClass::GetStringLength (char *string)
{
Length = strlen(string);
return Length;
}
void StringClass::Reverse(char *string) 
{
 int c;
 char *front, *rear, temp;

 front = string;
 rear = string;

 GetStringLength(string);

 for ( c = 0 ; c < ( Length - 1 ) ; c++ )
  rear++;

 for ( c = 0 ; c < Length/2 ; c++ ) 
 {        
  temp = *rear;
  *rear = *front;
  *front = temp;

  front++;
  rear--;
 }
} 
void StringClass::OutputString(char *string)
{
cout << "Your string reversed is: " << string << ".";
}

//Main.cpp
#include <iostream>
#include <string>
#include <fstream>
#include "ReverseString.h"

;using namespace std;

const int MaxSize = 100;

int main()
{
do
{
    char string[MaxSize];
    **char redo;**

    StringClass str;

    str.UserInputString(string);

    str.Reverse(string);

    str.OutputString(string);

    //Asks user if they want redo the program
    cout << "Would you like to redo the program?\n";
    cout << "Please enter Y or N: \n";
    **cin >> redo;**
}while(redo == 'Y' || redo == 'y');
}

それを宣言する理由が本当に混乱していますが、宣言されていないというエラーが発生します。

4

2 に答える 2

1

redoループ内でローカル変数として宣言されます。whileそのスコープは宣言の時点から始まり、キーワードの直前の右中括弧で終わります。条件内で名前redoが不明whileです。

于 2013-10-20T23:29:53.593 に答える
0

のクラス宣言の後にセミコロンがありませんReverseString.h

using namespace std;問題が最初に検出されたのはこの行であるため、コンパイラはその行でエラーを検出しています。これは、セミコロンをそこに置く必要があるという意味ではありません。

クラス宣言からセミコロンが欠落している可能性があることを示唆するコンパイラもあれば、そうでないコンパイラもあります。この間違いはよくあることです。ばかげた場所にセミコロンがないというエラーが表示された場合は、誤ってヘッダーから 1 つを除外した可能性があるとすぐに考える必要があります。

于 2013-10-20T23:29:49.447 に答える