angevoyageur : 과일(사과, 배), 고양이, 개, 동물 다음으로. 사람들이 웁에 대해 이야기 할 때 상상력의 부족은 끔찍합니다. (cyclops993, 당신에 관한 것이 아니라 wikipedia.) 어떤 실제 프로그램에 "talk" 메소드가 있는 "animal" 클래스가 필요합니다. 가능한 한 빨리 "거래" 사례를 게시하겠습니다.
약간 더 완전한 예제 스크립트:
class Animal {
public : virtualstring talk() { return"" ;}
};
class Cat : public Animal {
public : string talk() { return"Meow!" ;}
};
class Dog : public Animal {
public : string talk() { return"Woof!" ;}
};
voidOnStart ()
{
Animal * random;
if ( GetTickCount () % 2 == 0 ) {
random = new Cat();
} else {
random = new Dog();
}
MessageBox (random.talk());
delete random;
}
내가 전에 눈치채지 못한 것은 기본 클래스에 대한 참조가 있는 경우 본문이 없는 가상 기능 을 가질 수 없는 것 같습니다. 위의 예에서는 다음을 수행할 수 없습니다.
class Animal {
public : virtualstring talk();
};
... 반면 C++에서는 다음을 수행할 수 있습니다 .
class Animal {
public : virtualconstchar * talk() = 0 ; // Pure virtual function
};
class Cat : public Animal {
public : constchar * talk() { return"Meow!" ;}
};
class Dog : public Animal {
public : constchar * talk() { return"Woof!" ;}
};
void main()
{
Animal * random;
if ( GetTickCount () % 2 == 0 ) {
random = new Cat();
} else {
random = new Dog();
}
printf (random->talk());
}
과일(사과, 배), 고양이, 개, 동물 다음으로. 사람들이 웁에 대해 이야기 할 때 상상력의 부족은 끔찍합니다. (cyclops993, 당신에 관한 것이 아니라 wikipedia.) 어떤 실제 프로그램에 "talk" 메소드가 있는 "animal" 클래스가 필요합니다. 가능한 한 빨리 "거래" 사례를 게시하겠습니다.
약간 더 완전한 예제 스크립트:
내가 전에 눈치채지 못한 것은 기본 클래스에 대한 참조가 있는 경우 본문이 없는 가상 기능 을 가질 수 없는 것 같습니다. 위의 예에서는 다음을 수행할 수 없습니다.
... 반면 C++에서는 다음을 수행할 수 있습니다 .
그래서 클래스 고양이와 클래스 개를 무엇이라고 부르겠습니까? 그들은 동물의 하위 클래스입니까? dog 클래스에서 dog의 또 다른 하위 클래스를 만들고 클래스 pitbull이라고 부를 수 있습니까?
좋아, 좀 깔끔해, 나는 이것을 배우기 위해 약간의 노력을 기울일 것 같아
좋아, 좀 깔끔해, 나는 이것을 배우기 위해 약간의 노력을 기울일 것 같아
예를 들어:
...핏불은 고양이나 다른 개처럼 말을 할 수 있을 뿐만 아니라 위협할 수도 있습니다.