c++질문이요.
이제 막 c++ 공부하는 사람입니다.
강의를 들으면서 그대로 적었는데 오류가 나서 질문올립니다 ㅠㅠ
강의 내용은 이렇습니다.
#include
using namespace std;
class Sungjuk {
private:
int no;
char name[20];
int cpp, java, jsp, total;
double average;
public:
Sungjuk() {
cout << "기본 생성자가 실행됩니다." << endl;
}
Sungjuk (int no, char name[20], int cpp, int java, int jsp) {
this->no = no;
strcpy_s(this->name, name);
this->cpp = cpp;
this->java = java;
this->jsp = jsp;
total = cpp + java + jsp;
average = (double)total / 3;
}
void toString() {
cout << no << ". " << name << "님의 평균 점수는" << average << "점 입니다." << endl;
}
};
void main() {
class Sungjuk sungjuk1;
sungjuk1.toString();
class Sungjuk sungjuk2(1, "홍길동", 100, 100, 99);
sungjuk2.toString();
}
강의 선생님이 쓰신 코드 그대로 썻는데 선생님은 실행이 되고 전 오류가 뜹니다.
1>------ 빌드 시작: 프로젝트: 02day, 구성: Debug Win32 ------
sample1.cpp(40,13): warning C4326: 'main'의 반환 형식이 'int'이어야 하는데 'void'입니다.
sample1.cpp(46,57): error C2664: 'Sungjuk::Sungjuk(Sungjuk &&)': 인수 2을(를) 'const char [7]'에서 'char []'(으)로 변환할 수 없습니다.
sample1.cpp(46,31): message : 문자열 리터럴로부터의 변환은 const 한정자가 손실됩니다(/Zc:strictStrings 참조).
sample1.cpp(21,5): message : 'Sungjuk::Sungjuk' 선언을 참조하십시오.
1>"02day.vcxproj" 프로젝트를 빌드했습니다. - 실패
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========
오류 내용을 이렇게 뜨네요... 프로그램은 비쥬얼 스튜디오 쓰고있습니다. 설정이 안돼있어서 안돼는건가 싶기도한데... 어떻게 고치면 실행이 될까요?
const라는 건 안넣은데 왜 저리 뜨는건지.
마지막의 class Sungjuk sungjuk2(1, "홍길동", 100, 100, 99);
sungjuk2.toString();
부분을 주석처리하고 실행하면 잘 실행되는데 주석을 풀면 1 밑에 빨간 밑줄 쳐지면서 오류뜨네요.
첨부 | 파일 크기 |
---|---|
day2.png | 54.37 KB |
answer.
I recommend to not follow the lecture. The example simply sucks. Buy a good C++ text and study with it. You know what? The lecturer is just a loser!
fff
> The lecturer is just a loser!
Most of lecturers are just a loser! :) haha,,
Does that mean winners are
Does that mean winners are not teaching?
What are they doing?
노답
컴파일이 안 되는 게 정상입니다.
조금만 고치면 컴파일이 되게 만들 수 있긴 합니다만, 그게 문제가 아니로군요.
진짜 문제는 이런 낮은 퀄리티의 예제 코드를 제시하는 강의를 귀하께서 듣고 계신다는 겁니다.
코드 하나 고쳐 드려 봤자 밑 빠진 독에 물 붓는 격이죠.
아직 늦지 않은 것 같으니 다른 강의로 갈아타시는 게 좋겠습니다.
리눅스에서는 아래처럼 하면 됩니다.
리눅스에서는 아래처럼 하면 됩니다.
댓글 달기