1、在对象的世界里,有一个特殊的指针叫做this,该指针指向对象本身;
2、使用this指针的基本原则是:如果代码不存在二义性,就不必使用this指针;当然,在后续一些高级方法中也会使用this指针;
class Human
{
char name;
Human(char name);
};
Human::Human(char name)
{
this->name = name;
}
1、继承是面向对象编程技术的一个核心概念,它使传统的软件开发模式发生了革命性的变化;
2、继承机制使得程序员可以创建一个类的堆叠层次结构,每个子类均将继承在它的基类里定义的方法和属性;
3、简单地说,通过继承机制,程序员可以对现有的代码进行进一步的扩展,并应用在新的程序中;
4、基类:是可以派生出其他的类,也称为父类或超类。比如动物作为基类;
5、子类:是从基类派生出来的类。比如猪、乌龟作为子类;
实例:
#include <iostream>
#include <string>
// 动物基类
class Animal
{
public:
// 基类属性
std::string mouth;
// 基类方法
void eat();
void sleep();
void drool(); // 流口水
};
void Animal::eat()
{
std::cout << "Animal: I'm eating!" << std::endl;
}
void Animal::sleep()
{
std::cout << "Animal: I'm sleeping!" << std::endl;
}
void Animal::drool()
{
std::cout << "Animal: I'm drooling!" << std::endl;
}
// 猪子类
class Pig : public Animal
{
public:
void climb();
};
void Pig::climb()
{
std::cout << "Pig: I'm climbing!" << std::endl;
}
// 乌龟子类
class Turtle : public Animal
{
public:
void swim();
};
void Turtle::swim()
{
std::cout << "Turtle: I'm swimming!" << std::endl;
}
int main()
{
Pig pig;
Turtle turtle;
pig.eat();
turtle.eat();
pig.climb();
turtle.swim();
return 0;
}
输出:
Animal: I'm eating!
Animal: I'm eating!
Pig: I'm climbing!
Turtle: I'm swimming!