ホームページ  >  記事  >  バックエンド開発  >  C++ コードの「エラー: 'クラス' には '関数' という名前のメンバーがありません」という問題を解決する

C++ コードの「エラー: 'クラス' には '関数' という名前のメンバーがありません」という問題を解決する

王林
王林オリジナル
2023-08-26 19:52:451522ブラウズ

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

C コードで「エラー: 'クラス' に '関数' という名前のメンバーがありません」問題を解決する

C でプログラミングする場合、さまざまなコンパイル エラーが頻繁に発生します。よくあるエラーの 1 つは、「エラー: 'クラス' には '関数' という名前のメンバーがありません」です。このエラーは、呼び出されたメンバー関数がクラス内に見つからなかったことを示します。以下に、いくつかの一般的な状況と解決策を紹介します。

  1. メンバー関数の不正な宣言

この場合、問題は通常、クラスの定義と実装の間の不一致から発生します。このエラーは、クラスの定義でメンバー関数を宣言したが、実装でこの関数を実際に定義するのを忘れた場合に発生します。

サンプル コードは次のとおりです。

class MyClass {
public:
  void myFunction(); // 声明成员函数
};

int main() {
  MyClass obj;
  obj.myFunction(); // 调用成员函数
  return 0;
}

解決策: クラスの実装に対応するメンバー関数定義を追加します。

void MyClass::myFunction() {
  // 实现代码
}
  1. メンバー関数は private または protected として定義されています

メンバー関数が private または protected として定義されている場合、その関数はクラス外の別の場所で呼び出されます。エラーが報告されます。この機能を使用する場合。

サンプル コードは次のとおりです。

class MyClass {
private:
  void myFunction(); // 私有成员函数
};

int main() {
  MyClass obj;
  obj.myFunction(); // 调用私有成员函数
  return 0;
}

解決策: プライベート メンバー関数をパブリックに変更するか、対応するインターフェイス関数をクラスに追加してプライベート メンバー関数を呼び出します。

class MyClass {
public:
  void myInterface() {
    myFunction(); // 调用私有成员函数
  }
  
private:
  void myFunction();
};

int main() {
  MyClass obj;
  obj.myInterface(); // 调用接口函数
  return 0;
}

void MyClass::myFunction() {
  // 实现代码
}
  1. メンバー関数が間違ったスコープで定義されています

メンバー関数が間違ったスコープで定義されている場合、コンパイラは対象のメンバー関数を見つけることができません。エラーを報告します。

サンプル コードは次のとおりです。

class MyClass {
public:
  void myFunction();
};

void myFunction() {
  // 实现代码
}

int main() {
  MyClass obj;
  obj.myFunction(); // 调用成员函数
  return 0;
}

解決策: 正しいクラス スコープでメンバー関数を定義します。

class MyClass {
public:
  void myFunction();
};

void MyClass::myFunction() {
  // 实现代码
}

int main() {
  MyClass obj;
  obj.myFunction(); // 调用成员函数
  return 0;
}

概要

C コードで「エラー: 'クラス' には '関数' という名前のメンバーがありません」というエラーが発生した場合は、コード内に上記の状況が存在するかどうかを確認する必要があります。メンバー関数を適切に宣言すること、プライベート メンバー関数をパブリックに変更するかインターフェイス関数を追加すること、および正しいスコープでメンバー関数を定義することはすべて、この問題を解決する効果的な方法です。コードを注意深くチェックし、上記の解決策に従って修正を行うことで、このエラーを正常に解決し、C プログラムをスムーズにコンパイルおよび実行できます。

以上がC++ コードの「エラー: 'クラス' には '関数' という名前のメンバーがありません」という問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。