#include <iostream>
#include<string>
using namespace std;
class Something {
private :
string x;
public :
Something();
Something(string _x);
void getData();
Something operator<<(Something _p);
};
Something::Something() {
x = " ";
}
Something::Something(string _x) {
x = _x;
}
void Something::getData() {
cout << " x = " << x <<endl;
}
Something Something::operator<<(Something _p) {
Something p(x = _p.x);
return p.x;
}
int main() {
Something some1("11");
Something some2("22");
cout << "p1의 값:" << endl;
some1.getData();
cout << "p2의 값:" << endl;
some2.getData();
Something some1<<some2;
cout << "p3의x, y값:\n";
some.getData();
return 0;
}
여기서 중간에 오퍼레이터 정의에
사실은 오퍼레이터 << 이걸 사용하면 문자열을 받아올 수 있어야 됩니다.
예를 들어서
메인함수에서
some1<<"안녕하세요";
라고하면 some1의 스트링x 에 안녕하세요가 들어가야 되는데 그 오퍼레이터를 어떻게 정의해야되는지 모르겠습니다 ㅠㅠㅠㅠㅠ
알려주시면 정말 감사하겠습니다!
아시는분은 그냥 넘어가지 말아주세요 ㅠㅠㅠ 부탁입니다 ㅠㅠㅠ 이걸로 5시간째 씨름하고있는데 머리가 터져버릴꺼같아요....
operator<< 부분에서, Something p(x = _p.x); 부분은 그 클래스의 생성자를 호출하는게 아니야.. 임시객체를 만들고 그 임시객체의 생성자를 호출하는 거여. 그리고 함수 리턴할때 사라져 버리지. 따라서 원하는 대로 짜려면 this->x = _p.x 로 하던지.. 이부분을 함수로 만들어서 호출하던지..(생성자말고) 해야해.
뉴비인모양인데,..꼭 필요해서 c++ 배우는게 아니라면 웬만하면 딴거 배워. 거지 같은 언어다.
레노미나012 님아 그게 무슨개소리임?