[C++] 컴파일 에러 error: expected type-specifier before ‘Line’

bkironmask의 이미지

PureVirt.cc에서 주석처리한 14~17 라인을 별도의 파일로 분할하였습니다.
C++ 프로그램 line.cc를 컴파일할 때 다음과 같은 에어가 발생했습니다.
어디에서 잘못되었는지 말씀해 주시면 대단히 감사하겠습니다.

g++ -o line.o line.cc

In file included from line.hh:8:0,
from line.cc:1;

PureVirt.cc: In function ‘int main()’:
PureVirt.cc:34:17: error: expected type-specifier before ‘Line’
pG[0] = new Line;
^
PureVirt.cc:34:17: error: expected ‘;’ before ‘Line’

파일은 다음과 같이 3개로 분할되어 있습니다.
######################################
line.hh
######################################
1 #ifndef __LINE_HH__
2 #define __LINE_HH__
3
4 #include
5 #include
6 #include
7
8 #include "PureVirt.cc"
9
10 class Line : public Graphic {
11 public:
12 //virtual void Draw() { puts("Draw a line."); }
13 virtual void Draw();
14 };
15
16 #endif //__LINE_HH__

#######################################
line.cc
#######################################
1 #include "line.hh"
2
3 void Line::Draw() {
4 puts("Draw a line.");
5 }

#######################################
PureVirt.cc
#######################################
1 #include "line.hh"
2
3 #include
4 #include
5 #include
6
7
8 class Graphic {
9 public:
10 virtual void Draw() = 0;
11 };
12
13 /*
14 class Line : public Graphic {
15 public:
16 virtual void Draw() { puts("Draw a line."); }
17 };
18 */
19
20 class Circle : public Graphic {
21 public:
22 virtual void Draw() { puts("Draw a circle."); }
23 };
24
25 class Rect : public Graphic {
26 public:
27 virtual void Draw() { puts("Draw a rectanlular."); }
28 };
29
30 int main() {
31 Graphic *pG[3];
32 int i;
33
34 pG[0] = new Line;
35 pG[1] = new Circle;
36 pG[2] = new Rect;
37
38 for (i = 0; i < 3; i++) {
39 pG[i]->Draw();
40 }
41
42 for (i = 0; i < 3; i++) {
43 delete pG[i];
44 }
45
46 return 0;
47 }

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.