wprintf 사용시에만 멤버함수가 호출되는 이유는 뭔가요?
글쓴이: dltkddyd / 작성시간: 화, 2013/07/02 - 11:37오전
#include <cstdio>
#include "s_cstdlib.h"
#include "DynamicArr.h"
#include <clocale>
#include <climits>
#include <cstring>
#include <cstdlib>
#include "s_ifstream.h"
#include <cwchar>
#include <fstream>
int main() {
//wprintf(L"e\n");// 1) 주석
setlocale(LC_ALL,"ko_KR.UTF-8");
DynamicArr<char> arr1(strlen("abcdefg")+1);
arr1="abcdefg";//trouble
arr1.output();printf("\n");
printf("%s\n",&arr1[0]);
DynamicArr<wchar_t> arr2(wcslen(L"computer")+1);
arr2=L"computer";// 2) 주석
arr2[arr2.count()-1]=0;
wprintf(L"%u\n",arr2.count());
arr2.output();
wprintf(L"\neffe %ls\n",&arr2[0]);
wprintf(L"%u\n",arr2.length);
return 0
}1) 주석을 풀 때에만
2) 주석 부분의
template DynamicArr& DynamicArr::operator=(const wchar_t* src)
멤버함수가 호출됩니다. 1) 번의 wprintf와 이 멤버함수는 아무런 관계도 없는데, 왜 wprintf 때문에 operator= 함수가 호출되는 건가요? wprintf를 언급하지 않고 operator= 함수가 호출되어야 하는데요.
Forums:


호출된다는게 무슨뜻인지요? 호출되지 않으면 어떤
호출된다는게 무슨뜻인지요? 호출되지 않으면 어떤 에러가 나나요?
컴파일 타임 에러인가요? 아니면 링크 타임 에러? 런타임 에러?
각 경우에 구체적으로 어떤 현상이 발생하는지를 이야기하셔야지요.
질문은 정보가 제대로 전달될 수 있게 하셔야지요.
narrow 계열 함수와 wide 계열 함수를
narrow 계열 함수와 wide 계열 함수를 섞어쓰지 마세요.
먼저 호출된 함수가 속한 계열로 대동단결합니다.
댓글 달기