함수에 과부하하려고했습니다. < <입니다. 나는 이것을 알아 내려고 노력하면서 몇 시간 동안 꼼짝하지 못했다. ostream에서이 작업을 수행하는 방법에 대한 많은 예제를 발견했지만 그 중 어느 것도 내 특정 문제를 대상으로하지 않았습니다.<< 클래스 함수 오버로드 시도 중
#include <iostream>
class foo
{
public:
foo& operator<< (foo& (*pf)(foo&))
{
return pf(*this);
}
foo& do_something_more(foo& os)
{
return os;
}
};
ostream& do_something(ostream& os)
{
os << "1." << "\n" << "2.";
return os;
}
int main()
{
foo a;
std::cout << do_something; // this works
a << do_something_more; // this do not
system("pause");
return 0;
}
이 문제를 해결하는 방법 중 하나입니다. 'do_something_more'오류가 발생했습니다. 선언되지 않은 식별자이 이에 포함됩니다.
도움 주셔서 감사합니다.
'do_something_more()'는'foo'의 멤버 함수로 인스턴스를 호출해야합니다. –
아니면 정적으로 만들고'a << foo :: do_something_more; '... 또는 비회원 만 사용하십시오. – LogicStuff
그 물건의 아무 것도 정말로 말이되지 않습니다. –