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

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

王林
リリース: 2023-08-26 19:52:45
オリジナル
1801 人が閲覧しました

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

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

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

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

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

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

1

2

3

4

5

6

7

8

9

10

class MyClass {

public:

  void myFunction(); // 声明成员函数

};

 

int main() {

  MyClass obj;

  obj.myFunction(); // 调用成员函数

  return 0;

}

ログイン後にコピー

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

1

2

3

void MyClass::myFunction() {

  // 实现代码

}

ログイン後にコピー
  1. メンバー関数は private または protected として定義されています

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

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

1

2

3

4

5

6

7

8

9

10

class MyClass {

private:

  void myFunction(); // 私有成员函数

};

 

int main() {

  MyClass obj;

  obj.myFunction(); // 调用私有成员函数

  return 0;

}

ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

class MyClass {

public:

  void myInterface() {

    myFunction(); // 调用私有成员函数

  }

   

private:

  void myFunction();

};

 

int main() {

  MyClass obj;

  obj.myInterface(); // 调用接口函数

  return 0;

}

 

void MyClass::myFunction() {

  // 实现代码

}

ログイン後にコピー
  1. メンバー関数が間違ったスコープで定義されています

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

class MyClass {

public:

  void myFunction();

};

 

void myFunction() {

  // 实现代码

}

 

int main() {

  MyClass obj;

  obj.myFunction(); // 调用成员函数

  return 0;

}

ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

class MyClass {

public:

  void myFunction();

};

 

void MyClass::myFunction() {

  // 实现代码

}

 

int main() {

  MyClass obj;

  obj.myFunction(); // 调用成员函数

  return 0;

}

ログイン後にコピー

概要

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

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

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート