- C++ 생성자의 초기화리스트에서
- 어떤 멤버의 생성자의 매개변수에 다른 멤버함수를 써서 값을 줘도 문제 없나요?
- 컴파일도 되고 별 문제는 없어보이지만.. 혹시나해서
- IniSerialBuffer(const char* dir)
- :filePaths(getFilePathVector(dir))
- {}
getFilePathVector는 vector<string>을 반환하는 멤버함수입니다
getFilePathVector는 vector<string>을 반환하는 멤버함수입니다
ㄴㄴ
아직 초기화중일때라 안되는걸로 암.
저게 상속받은거고 부모의 멤버함수를 쓰는 거라면 가능하긴 한데(아마) 그래도 그닥 추천하는 동작은 아님
난 멍청해서 질문 이해를 못하겠가
영 불안하면 컨스트럭터에다가 명시해주는것도 방법
멤버의 생성자는 클래스의 생성자 말하는거임?
ㄴ이렇게 하면 될 듯
역시 문제가 생겨야되는데 이보시오 ide양반 왜 아무런 대답이 없소
아 미안..해보니까 된다
IniSerialBuffer가 가진 vector<string> 멤버가 filePaths에염
되긴 되는디 찝찝해서 ㅋㅋ
근데 워닝도 안 띄우는데 정말 괜찮은걸까...
class boy{public: boy() : a(get10()), b(getA()) { } int a; int b; int get10() { return 10; }; int getA() { return a; };};int main(){ boy b; cout << b.a << endl; cout << b.b << endl;}
근데 저 함수가 맴버변수조작 없으면 스태틱으로 선언하면 됨
VS에선 잘 되네..근데 초기화중엔 안쓰는게 좋을거같긴 한데..음..나도 C++알못이라..
암튼 저렇게 쓸바에 static method를 하나 넣어주는게 더 편한 방법인듯
아그리고 그... std::string은 내부적으로 힙에다 뭘 할텐데 static으로 선언하면 ...?
string getFilePathVector()<이걸 static으로
virtual이 아니어야 하고, getFilePathVector가 filePaths 이후의 멤버 변수를 사용하지 않아야함. 이런거 고려해서 짜느니 static member를 추천
http://ideone.com/Ty8imN
저 그냥 안쓸게요; ㄷㄷㄷ