>  기사  >  백엔드 개발  >  C++ 코드에서 "오류: '클래스'에 'function'이라는 멤버가 없습니다." 문제 해결

C++ 코드에서 "오류: '클래스'에 'function'이라는 멤버가 없습니다." 문제 해결

王林
王林원래의
2023-08-26 19:52:451576검색

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

C++ 코드에서 "오류: 'class'에 'function'이라는 멤버가 없습니다." 문제를 해결하세요.

C++로 프로그래밍할 때 다양한 컴파일 오류가 자주 발생합니다. 일반적인 오류 중 하나는 "오류: '클래스'에 '함수'라는 멤버가 없습니다."입니다. 이 오류는 호출된 멤버 함수를 클래스에서 찾을 수 없음을 나타냅니다. 아래에서는 몇 가지 일반적인 상황과 해결 방법을 소개합니다.

  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;
}

Summary

C++ 코드에서 "오류: 'class'에는 'function'이라는 멤버가 없습니다." 오류가 발생하는 경우 위의 상황이 코드에 존재하는지 확인해야 합니다. 멤버 함수를 올바르게 선언하고, 전용 멤버 함수를 공용으로 변경하거나, 인터페이스 함수를 추가하고, 올바른 범위에서 멤버 함수를 정의하는 것은 모두 이 문제를 해결하는 효과적인 방법입니다. 코드를 주의 깊게 확인하고 위 해결 방법에 따라 수정하면 이 오류를 성공적으로 해결하고 C++ 프로그램을 원활하게 컴파일하고 실행할 수 있습니다.

위 내용은 C++ 코드에서 "오류: '클래스'에 'function'이라는 멤버가 없습니다." 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.