VC ++ 学习笔记(二)

本文详细解释了C++中结构体与类的差异,包括访问权限、继承、构造函数、函数重载等内容,并阐述了它们在实际编程中的应用。重点介绍了类与结构体的通用性、类的实例化、构造函数、继承方式、函数覆盖与重载的区别,以及C++的多态性特性。此外,还讨论了引用与指针的区别,以及如何在C++中有效利用这些概念。

1.c语言的结构体是不能有成员函数的,但是c++ 中可以的。这样的话c++中的结构体和类的作用是相同的,但是c++ 中的结构体和类也是有区别的区别就是类可以定义其访问权限,而结构体不同,不能定义其访问权限。结构体和类在c++中是可以通用的。

2.类是抽象出一些基本属性,对象是具有具体属性值。对象是具体的,有生命的。类的实例,就是产生一个类的对象。

3.函数的重载,一般是参数不同时,才能构成函数的重载,即函数名相同的,但是参数的个数不一样的时候构成函数的重载,但是也有例外,带缺省值的函数不能构成函数的重载。

4.指针才用的到指向操作符-> this指针 产生对象之后,并不是类。类是抽象的并不占用内存空间,只有实例化之后才占用内存空间。

5.类的继承 class fish publish Animal {} 

6.protected: 方法可以被子类调用但是不能在外部对象中被实现。保护的方法,在对象里都不可以访问。

7.类的继承方法 class fish publish Animal {}class fish protectedAnimal {}class fish private Animal {}

8.构造对象是,基类的对象是先被构造的,然后是构造子类的对象,当进行析构的时候,子类先析构,然后父类在析构。

9.对于一个类来说,默认可以不写构造函数,但是当我们自己定义一个构造函数的时候,无论是带参数还是不带参数,c++ 编译器都不会为我们提供默认的构造函数了,以我们自己的构造函数为准。

10.类的继承的过程中,有可能父类构造的时候需要参数,则子类的构造函数中必须向父类提供其构造所需要的参数。

Class Animal{

Animal(int x,int y){}

}

Class fish : public Animal{

Fish():Animal400300

}

11 类中常量的初始化,privateconst int a;此时应该在构造的时候Fish():Animal400300),a1

12.区别函数的覆盖与函数的重载。函数的覆盖,发生在父类和之类之间的,函数的重载发生在一个类之间的,当我们继承一个类的时候,重写一个父类的函数就是函数覆盖。

13.C++的多态型,虚函数,用一句话总结就是:我们在基类中相应的函数前面加上virtual 如果子类有这个函数则调用子类的,子类没有则调用父类的函数。前提条件是你传递的是子类的地址。

14

 void  fnAnimal *pAn

{

 pAn->breath();

}

Main()

{

Fish fh;

Animal *pAn;

pAn=&fh;

Fn(pAn);

}

C++ 的纯虚函数,没有函数实体的虚函数,子类必须给出函数的实现过程,否则不能根据这个类来实现某个对象。两个要求:1.必须的 2.无法直接定义函数的具体函数。

15 c++ 引用和指针的区别,引用不需要占据内存空间,相当于一个变量的别名,但是指针是需要占据内存空间的,我们分配一块内存空间去储存另一个变量的内存地址。定义引用的方法 int &b=a; 引用要慎用,主要用于MFC 函数的传递参数。

Void changeint &a, int &b

{

}

Change(x,y);

实际上只的是同一个内存空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值