Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selesaikan masalah "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah'" dalam kod C++

Selesaikan masalah "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah'" dalam kod C++

WBOY
WBOYasal
2023-08-25 20:43:592996semak imbas

解决C++代码中出现的“error: 'class' has no member named 'variable'”问题

Selesaikan masalah "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah'" dalam kod C++

Apabila menulis kod C++, kadangkala kita menghadapi masalah seperti ini: "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah' ", mesej ralat ini bermakna terdapat masalah apabila menggunakan pembolehubah ahli kelas. Artikel ini akan memperkenalkan beberapa punca dan penyelesaian biasa, serta memberikan contoh kod yang sepadan.

Pertama sekali, sebab ralat ini mungkin salah satu daripada situasi berikut:

  1. Pembolehubah ahli tidak diisytiharkan dalam kelas:
    Dalam kes ini, pengkompil tidak dapat mencari definisi pembolehubah ahli, mengakibatkan satu kesilapan. Penyelesaiannya ialah menambah pembolehubah ahli dalam pengisytiharan kelas.
class MyClass {
public:
    int myVariable; // 声明成员变量
    void myMethod(); // 声明成员方法
};

void MyClass::myMethod() {
    myVariable = 10; // 使用成员变量
}
  1. Pembolehubah ahli dalam kelas ditetapkan kepada akses peribadi atau dilindungi:
    Dalam kes ini, pembolehubah ahli tidak boleh diakses terus dari luar kelas, jadi ralat juga akan berlaku. Penyelesaiannya adalah untuk menyediakan fungsi akses awam (pengambil dan penetap) untuk mengakses pembolehubah ahli.
class MyClass {
private:
    int myVariable; // 私有成员变量
public:
    int getMyVariable() const {
        return myVariable; // getter函数
    }
    void setMyVariable(int value) {
        myVariable = value; // setter函数
    }
};

void myMethod() {
    MyClass obj;
    obj.setMyVariable(10); // 设置成员变量的值
    int value = obj.getMyVariable(); // 获取成员变量的值
}
  1. Pembolehubah ahli dalam kelas ditakrifkan di luar kelas:
    Ralat ini juga akan berlaku jika pembolehubah ahli kelas ditakrifkan di luar kelas dan tidak diisytiharkan dengan betul. Penyelesaiannya ialah meletakkan definisi pembolehubah ahli di dalam badan kelas.
class MyClass {
public:
    int myVariable; // 成员变量的声明
    void myMethod(); // 成员方法的声明
};

int MyClass::myVariable = 0; // 错误的定义方式

void MyClass::myMethod() {
    myVariable = 10; // 使用成员变量
}

Dengan penyelesaian di atas, kita boleh mengelakkan masalah "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah'". Apabila menulis kod C++, kita harus memberi perhatian kepada pengisytiharan dan hak akses pembolehubah ahli kelas, serta lokasi definisi pembolehubah ahli.

Saya harap artikel ini akan membantu dalam menyelesaikan masalah berkaitan dalam kod C++. Sebarang pertanyaan lanjut sila berasa bebas untuk bertanya.

Atas ialah kandungan terperinci Selesaikan masalah "ralat: 'kelas' tidak mempunyai ahli bernama 'pembolehubah'" dalam kod C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn