目录
前言
快开学了要复习了。今天来复习c++基本的一些特性
类与对象
c++是面向对象的语言。类拥有属性和方法,用来描述抽象事物,而对象则是活生生的实例。
类的定义
通过class关键字可以定义一个类
class Cow
{
private:
int age;
protected:
double weight;
public:
bool isMale;
};
一个类具有public protected 和 private 三种类型的成员。成员可以是变量或者函数。下面给出三种成员的访问控制表
修饰 | 访问规则 |
---|---|
public | 任何情况均可访问 |
protected | 该对象及其继承者可访问 |
private | 仅该对象自己可访问 |
构造与析构
构造函数和析构函数是两种特殊的函数,用于在对象创建时,传入初始化参数,或者是在对象销毁时,删除对象占用的某些空间(当然得自己编码实现)。
构造函数无返回值,名字和类名相同,可以如下形式声明构造函数。
class Cat
{
public:
Cat(){
}
};
析构函数则是在构造函数函数名前面加上 ~
符号
class Cat
{
public:
Cat(){
}
~Cat(){
}
};
构造函数如同任何函数一样,支持重载,即不同的初始化方式。
class Cat
{
private:
int age;
public:
Cat(){
}
Cat(int Age){
age=Age;}
~Cat(){
}
};
值得注意的是,任何时候,良好的习惯,都最好准备无参数的构造函数。
创建与访问成员
通过调用类的构造函数,可以创建实例化的对象。多个构造函数,只需要调用一个即可。
class Cat
{
private:
int age;
public:
Cat(){
}
Cat(int Age){
age=Age;}
~Cat(){
}
};
int main()
{
Cat mycat1(123); // 创建对象1
Cat mycat2 = Cat(123); // 创建对象2
Cat mycat3; // 创建对象3
return 0;
}
值得注意的是,如果直接创建变量,即 Cat mycat
,那么会调用无参的构造函数。
通过 对象变量.成员名称
的方式可以访问对象的成员,比如我们取出 mycat1 对象的 age 属性,并且赋值给temp变量:
int temp = mycat1.age;
友元函数
上文提到,外部程序只能访问public的成员,如果访问私有成员,则会编译报错。友元函数提供了一种外部函数访问类的私有变量的方式。
友元函数相当于白名单,友元函数内