#include <iostream>
using namespace std;
int & RefRetFuncOne(int &ref)
{
ref++;
return ref;
}
int main()
{
int num1=1;
int num2=RefRetFuncOne(num1);
num1 += 1;
num2 += 100;
cout<<"num1 : "<< num1 <<endl;
cout<<"num2 : "<< num2 <<endl;
return 0;
}
이 함수는 참조자를 반환하고 있습니다 그걸 변수로 받고있구요
아무런 이상없는 코드입니다
제가 string 클래스를 만드는 과제를 하는중인데요 연산자오버로딩을 이용해 문자열 이어붙이기를 만드려고 합니다 (객체)+(객체)
class String
{
private:
char str[20];
public:
String() {}
String(char *s)
{
strcpy(str, s);
}
String& operator +(const String &s)
{
String s3;
s3 = strcat(str, s.str);
return s3;
}
};
void main()
{
String s1("string");
String s2("class");
String s;
s = s1 + s2;
}
+ 함수 보시면 (빨간글씨) 참조자로 반환을 하고 있습니다. 그걸 다시 객체로 받구 있구요
위에꺼는 되는데 왜 아래꺼는 안되는건가요 ㅠㅠ 저 참조자는 함수가끝나는 순간 메모리에서 사라지므로 값을 받아올수 없다고 하는데
그럼 첫번째 코딩에서도 안되야 하는게 아닌가요 ㅠㅠ
그리고 strcat을 이용해 문자열 이어붙이기를 만드려고 하는데
저기서 &이 기호만 빼면 맞는 코딩인가요??