C++快速入门---this指针和类的继承(10)
this是一个特殊的指针
class Human {
char fishc;
Human(char fishc);
}
Human::Human(char fishc){
fishc = fishc;
}
"fishc = fishc",怎样才能让构造器知道哪个是参数,哪个是属性呢?
扫描二维码关注公众号,回复:
3923904 查看本文章
用到它了 - this指针(指向当前的类生成的对象)
this->fishc = fishc
现在编译器就懂了,赋值操作符的左边将被解释为当前对象的fishc属性,右边将被编译器解释为构造器的传入来的fishc参数。
继承
假设我们有一只乌龟和一只猪,它们都有一些共同特征:例如都有嘴巴会吃东西,都睡觉,都会流口水。它们有不同的地方:例如乌龟会游泳,猪会爬树。
基类是可以派生出其他的类,也称为父类或超类。比如这里的Animal是基类。
子类是从基类派生出来的类,比如这里的Trutle类和Pig类是子类,
继承的语法:
class SubClass : public SuperClass {...}
代码如下:
#include <iostream>
#include <string>
class Animal//基本
{
public:
std::string mouth;//嘴巴
void eat();
void sleep();
void drool();//流口水
};
//Pig继承于Animal
class Pig : public Animal
{
public:
void climb();//上树
};
class Turtle : public Animal
{
public:
void swim();
};
void Animal::eat()
{
std::cout << "I'm eatting!" << std::endl;
}
void Animal::sleep()
{
std::cout << "I'm sleeping!Don't disturb me!" << std::endl;
}
void Animal::drool()
{
std::cout << "我是公的,看到母的我会流口水,我正在流口水。。。" << std::endl;
}
void Pig::climb()
{
std::cout << "我是一只漂亮的小母猪猪,我会上树,我正在爬树。。嘘。。" << std::endl;
}
void Turtle::swim()
{
std::cout << "我是一只小甲鱼,当母猪想抓我的时候,我就游到海里。。哈哈。。" << std::endl;
}
int main()
{
Pig pig;
Turtle turtle;
pig.eat();
turtle.eat();
pig.climb();
turtle.swim();
return 0;
}