封装
在private/protected 模块放置数据或者底层算法实现; 在public块提供对外接口,实现相应的功能调用; 类的封装案例
# include <iostream>
using namespace std;
class Stu {
public :
void setAge ( const int & age) {
this -> age = age;
}
const int & getAge ( ) const {
return age;
}
private :
int age;
} ;
int main ( ) {
Stu s1;
s1. setAge ( 20 ) ;
cout << s1. getAge ( ) << endl;
return 0 ;
}
继承
将一个类的成员变量、成员函数,应用到另一个类中,实现复用; 支持多继承,同python一样;而 java 仅支持单继承; 继承修饰符public、protected、private; 若不写修饰符,则默认private继承; public继承,基类中的public、protected、private 保持不变; protected继承,基类中的public、protected、private 变为protected、protected、private private继承, 基类中的public、protected、private全部变为private;
# include <iostream>
# include <string>
using namespace std;
class People {
public :
string name;
People ( const string& name, const int & age, const double & height) {
this -> name = name;
this -> age = age;
this -> height = height;
cout << "父类完成初始化" << height << endl;
}
void printName ( ) const {
cout << "name:" << name << endl;
}
void printAge ( ) const {
cout << "age:" << this -> age << endl;
}
void printHeight ( ) const {
cout << "height:" << this -> height << endl;
}
protected :
int age;
private :
double height;
} ;
class Stu : public People {
public :
int num;
Stu ( const string& name, const int & age, const double & heigh) : People ( name, age, heigh) {
this -> num = 102 ;
}
void printAge ( ) const {
cout << "age:" << this -> age << endl;
}
} ;
int main ( ) {
string name = "jack" ;
int age = 20 ;
double height = 23.5 ;
Stu s1 ( name, age, height) ;
s1. printName ( ) ;
s1. printAge ( ) ;
s1. printHeight ( ) ;
return 0 ;
}
多态
多个子类继承父类中的方法,分别实现方法的重写; 父类中采用 virtual 声明为虚函数; 函数体赋值为=0,则为纯虚函数;
在这里插入代码片