ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C++(1)

C++(1)

原创 Linux操作系统 作者:Hemes 时间:2010-07-19 20:48:12 0 删除 编辑

C++类的引入源于struct结构体的功能不健全,两者之间的区别之一:对于内部成员变量和成员函数访问权限的控制。

struct默认内部的成员变量和成员函数均为public,可供外部进行访问。

class默认内部的成员变量和成员函数均为private,不可供外部进行访问。

控制访问的权限有三种:
private:私有的,只可内部进行访问。
public:公有的,外部也可进行访问。
pretected:保护的,子类可访问,外部仍不可访问。

对于一个类实例化一个对象,会自动调用构造函数进行赋值。由于类的名称是唯一的,因此构造函数的名称设定为类名,无返回值。

C++规定每个类必须有一个构造函数,否则无法创建对象。如果自己定义了有参数的构造函数,系统不再默认创建无参数的构造函数,用户需要使用需自己定义。

析构函数无返回值,无参数,一个类只允许有一个析构函数。

class Point{     
    int x;   
    int y;
public:  
    Point(){      
       x=0;     
       y=0;   
    }//无参构造函数
  
    Point(int a,int b){     
       x=a;     
       y=b;   
    }//有参构造函数
 
    ~Point(){}//析构函数
  
    void output(int x,int y){    
        This->x=x;     
        This->y=y;      
        count<    }      
};

类不占有物理内存,对象占有物理内存。

函数重载:不同参数类型,不同参数个数
void Point(int a,int b=10){}
void Point(int a){}//不是函数重载

类中隐含This指针,指向对象本身。

继承:
基类 class animal{};
子类 class fish : public animal{};

基类         继承方式          子类
public                                public
pretected    public           pretected
private                               无权限

public                                pretected
pretected    pretected     pretected
private                               无权限

public                                private
pretected    private          private
private                               无权限

先调用基类构造函数,再调用子类构造函数

先调用子类析构函数,再调用父类析构函数

函数的覆盖发生在父类与子类之间

基类的构造函数是有参数的,子类的构造函数是无参数的,需如下编写子类构造函数:
Fish():Animal(300,200){}

多态性:
当C++编译器在编译的时候,发现某个类的某个函数是虚函数,采用迟绑定的技术,在运行时,依据对象的类型来确认调用的哪一个函数。

基类 virtual void eat(){}。传递子类地址,子类有该函数,调用子类,子类没有该函数,调用父类。

没有函数体的虚函数为纯虚函数,virtual void eat()=0;含有纯虚函数的类为抽象类,是不可以实例化对象的。

子类不具体实现纯虚函数,子类也为抽象类。

int a=6;
int &b=a;//对a的引用,引用需赋初始值

引用多用于函数传参,由于共用一片内存,防止了值拷贝

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23366483/viewspace-668406/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-07-19

  • 博文量
    18
  • 访问量
    11269