1
이것은 내 main.cpp 코드입니다.클래스의 유형 한정자 오류를 수정하는 방법은 무엇입니까?
오류 C2662 : '문자열 :: 인쇄': 입력 오류 3 문자열과
void Display(const String &str1, const String &str2, const String &str3)
{
cout << "str1 holds \"";
str1.print(); // the error is here about the str1
cout.flush();
cout << "\" (length = " << str1.length() << ")" << endl;
cout << "str2 holds \"";
str2.print();
cout.flush();
cout << "\" (length = " << str2.length() << ")" << endl;
cout << "str3 holds \"";
str3.print();
cout.flush();
cout << "\" (length = " << str3.length() << ")" << endl;
}
이 전달 된 3 String 객체의 값과 길이 밖으로 출력 인쇄입니다 변환 할 수 없습니다 'this'포인터 '문자열에서'문자열 '&'
이것은 내 구현 파일에 있습니다 : 내가 여기 뭔가 잘못 됐니?
void String::print()
{
cout << m_pName << ": ";
cout << (int)m_str1 << ", ";
cout << (int)m_str2 << ", ";
cout << (int)m_str3 << endl;
}
만들기'인쇄 :
가
print
방법const
을 확인'무효 인쇄() –을 const''(INT)이 m_str1' 보이는 ** 아주 * * dodgy. 적어도 C++ 스타일의 캐스트를 사용하고 변수 이름을 의미있는 것으로 변경하십시오. –
DRY라는 프로그램에는 규칙이 있습니다. 반복하지 마십시오. 코드가 매우 심하게 기분을 상하게합니다. 한 번에 하나의 문자열을 처리하도록 표시하고 같은 것을 세 번 수정하면 저장하게됩니다 (또는 한 번 수정하면 다른 두 가지를 잊어 버리고 왜 작동하지 않는지 궁금합니다 ...) – aryjczyk