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 계열 함수를 섞어쓰지 마세요.
먼저 호출된 함수가 속한 계열로 대동단결합니다.
댓글 달기