#include <iostream>
#include <cstring>
using namespace std;
class Person
{
private:
char* name;
int age;
public:
Person(char* myname, int myage)
{
int len = strlen(myname) + 1;
name = new char[len];
strcpy(name, myname);
age = myage;
}
void Showinfo() const
{
cout << "이름: " << name << endl;
cout << "나이: " << age << endl;
}
~Person()
{
delete[]name;
cout << "called destructor" << endl;
}
};
int main()
{
Person man1("Lee dong woo", 29); <- 이쪽 두줄이 문제나는 부분
Person man2("Kim Gi hwan", 23);
man1.Showinfo();
man2.Showinfo();
return 0;
}
책에 있는 예제 그대로 적어서 컴파일 하는데 자꾸 오류뜨네
인수 목록이 일치하는 생성자 "Person::Person"의 인스턴스가 없습니다.
Person::Person(const Person &)': 인수 1을(를) 'const char [13]'에서 'char *'(으)로 변환할 수 없습니다.
이렇게 뜨는게 이유가뭘까
아 책은 14년인가 15년에 산 윤성우 열혈 C++
짜놓은 코드 보자마자 누가 쓴 책 보는지 알았다 개 씹 극혐이구나 책 당장 버려라 - return 0;
커헉//플밍에 흥미가지기에는 윤성우 책만한게 없지 레퍼런스책으로 쓰기에는 아니지만
ㄴ 흥미? 지랄하고 자빠졌네 프로그래밍이 장난이야? - return 0;
저 코드 오류 안나는데
ㅠㅠ 싸우지말고 이유좀알려줄수없을까..
근데 오류내용보면 생성자 인자를 맞추지 못한거같은데 글쓴분이 잘못 옮겨쓴거아님?
?? 흥미있어서 컴공간거 아니였음? 흥미있어서 프로그래머된거 아니였음? 아니라면 지금 하는 프로그래밍은 손떼고 다른일 찾는게 더 낫지 않을까
아니면 비쥬얼스튜디오 설정에 뭐 오류있나... 2017 커뮤니티 버전쓰는딩
char* myname -> const char* myname으로 바꿔보셈 오류내용대로 차근차근 고쳐보셈
근데 보니까 저번에도 그랬고 함수에 인자를 char* blah 로 받아오게 해놓고 메인함수에서 인자로 "blah blah" 이렇게 문자열로 주면 오류뜨던데 원래그럼?
char* 앞에 const 붙여보셈
const 붙이니깐 되네여... 옛날버전은 안붙여도 되고 요즘껀 붙여야 되는건강...
상수문자열을 전달하면 const char* 로 받는게 맞긴함
아니 원래 됐던 적이 없었어. 내가 진짜 너 생각해서 하는 말이니까 책 바꿔라 - return 0;
컴파일러 버전 문제인듯 한데 윤성우 책부터 일단 태우자
ㅋㅋㅋ 윤성우책 평판이 되게 별로네 프밍 ㅈ밥입장에서 초심자한테 괜찮을책이라 생각해왔는데...
ㄴ 윤성우 책은 내용이 빈약 그 자체기 때문에 초심자에게는 더더욱 최악이다 - return 0;
보통 기초 c++플러스 를 추천하고 (댑따무거움) 윤성우는 거의 라면받이 취급이라고보면됨.. 나도 입문할때 사긴했지만 안좋아함
차라리 뇌자극 알고리즘이나 c++가 윤성우보다는 입문서로 괜찮다고봄..
호옹