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():Animal(400,300)
}
11 类中常量的初始化,private:const int a;此时应该在构造的时候Fish():Animal(400,300),a(1)
12.区别函数的覆盖与函数的重载。函数的覆盖,发生在父类和之类之间的,函数的重载发生在一个类之间的,当我们继承一个类的时候,重写一个父类的函数就是函数覆盖。
13.C++的多态型,虚函数,用一句话总结就是:我们在基类中相应的函数前面加上virtual 如果子类有这个函数则调用子类的,子类没有则调用父类的函数。前提条件是你传递的是子类的地址。
14
void fn(Animal *pAn)
{
pAn->breath();
}
Main()
{
Fish fh;
Animal *pAn;
pAn=&fh;
Fn(pAn);
}
C++ 的纯虚函数,没有函数实体的虚函数,子类必须给出函数的实现过程,否则不能根据这个类来实现某个对象。两个要求:1.必须的 2.无法直接定义函数的具体函数。
15 c++ 引用和指针的区别,引用不需要占据内存空间,相当于一个变量的别名,但是指针是需要占据内存空间的,我们分配一块内存空间去储存另一个变量的内存地址。定义引用的方法 int &b=a; 引用要慎用,主要用于MFC 函数的传递参数。
Void change(int &a, int &b)
{
}
Change(x,y);
实际上只的是同一个内存空间。