首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 新手錯誤:string char name 宣告語法錯誤修正

     編輯:程式設計疑難解答

錯誤訊息

error C2628: 'string' followed by 'char' is illegal (did you forget a ';'?)

發生於類別私有成員宣告:

private:
    int num;
    string char name;  // 錯誤:連續兩個型別
    char sex;

原因分析

C++ 不允許連續書寫兩個型別名稱。編譯器將 string 視為第一個型別,接著看到 char 誤以為是第二個宣告的型別,但缺少分號分隔,因此報錯。

修正方案(二選一)

方案一:使用 std::string(推薦)

#include 
private:
    int num;
    std::string name; // 正確:單一型別
    char sex;

方案二:使用 C 風格字串指標

private:
    int num;
    char* name; // 需手動 new/delete 管理記憶體
    char sex;

完整修正後程式碼

#include 
#include 
using namespace std;

class student {
public:
    student(int n, string nam, char s) {
        num = n; name = nam; sex = s;
        cout << "construct called" << endl;
    }
    ~student() { cout << "destruct called." << endl; }
    void display() {
        cout << "num:" << num << endl;
        cout << "name:" << name << endl;
        cout << "sex:" << sex << endl;
    }
private:
    int num;
    string name;  // 已修正
    char sex;
};

int main() {
    student stud1(10010, "wang", 'm');
    stud1.display();
    student stud2(10011, "zhang", 'f');
    stud2.display();
    return 0;
}

避免同類錯誤提醒

  • 每行宣告只能有一個基本型別(或衍生型別)。
  • 使用 using namespace std; 時,string 即為 std::string,無需再加型別。
  • 編譯器錯誤訊息 followed by 'char' is illegal 直接暗示「連續出現兩個型別關鍵字」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved