c++ char형 생성자 초기화 질문입니다
조회수 2115회
#include<iostream>
using namespace std;
class Test{
private:
char* str;
public:
Test(char* name){
str=name;
}
void hello(void){
cout << str;
}
};
int main(){
Test ptr("lee");
ptr.hello();
return 0;
}
멤버 변수로 char형 을 선언했는데 [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings] 이렇게 메시지가 뜹니다 char 형은 생성자 초기화를 어떻게 해야 되는지 궁금합니다. 그리고 위와 같이 하면 왜 char형은 초기화에 문제가 있는지도 알고 싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
일단 문자열은 상수입니다.
const 를 붙여줘야 합니다.
const char* name
그리고 문자열을 다루는데 string 사용을 추천드립니다.
- 엇 답변 감사합니다!! 외워야겠네요 감사합니다!! 그럼 혹시 저 const char*name 이부분 이니셜 라이저는 어떻게 하는지 알수 있을까요? 알 수 없는 사용자 2019.12.26 23:10
-
아래와 같이 하세요.
#include<iostream> using namespace std; class Test{ private: const char* str; public: Test(const char* name){ str = name; } void hello(void){ cout << str; } }; int main(){ Test ptr("lee"); ptr.hello(); return 0; }
댓글 입력