强调一下昨天的错误点
结构点的特点有四种:
1.系统自己调用
2.与类名相同
3.对类所有变量可以初始化
4.不能有返回值
类的三大基石:继承,封装,多态
继承:主要用于与派生的共同应用:实现派生类成员,对象对基类成员的访问控制
继承三大类型:公有继承,私有继承,保护继承:定义基类的时候private成员不可访问,public和protected可访问 值保持不变
需要注意的是派生类声明:class 子类名:public 父类名
多继承需要类型一致:
多继承的应用:
在没声明的情况下,只有public继承的派生类能访问基类的成员函数和成员变量;
私有继承和保护继承的派生类,只有在派生函数里面进行声明的情况下,并且main函数里面也不能直接访问,通过间接的派生类进行访问。
#include<iostream>
using namespace std;
class A
{
public:
void a()
{
cout << "hello A" << endl;
}
};
class B
{
public:
void b()
{
cout << "hello B" << endl;
}
};
class C:public A,protected B
{
public:
void c()
{
cout << "hello C" << endl;
//b();
}
};
int main()
{
C showc;
showc.c();
showc.b(); //错误的,在前面派生类void c函数里面进行声明,这句可以省略
showc.a();
system("pause");
return 0;
}
重载函数:
c++允许功能相近的函数在相同作用域内衣相同函数名声明,从而形成重载。
函数名与类名一样
分为类型不一样和参数不同
比较关键的一点是构造函数的过程中派生类调用函数中父类的参数传递一般要在需要调用的函数传递参数后面加:父类名的构造函数名(参数)
就拿:B(i)是代表父类B构造函数的赋值
如果缺少:B(i)默认值调用父类的构造函数,如果构造函数有参数可使用B(i)调用构造函数;
int add(int x,int y)
int add(int a,int b)
这样的重载函数是错误的,这两个函数的个数和类型都相同
int add(int a,int b)
void add(int a,int b)
这样也是错误的,编译器不以返回值来区分
还有就是不同功能的函数尽量不要用重载函数,避免麻烦
最后学到的一点在c++里小数默认为double,而不是float