C++基础知识点(一)

1、类的对象是局部变量,在栈区存储,先进后出

class    a;

class    b;

执行顺序:

构造函数a--构造函数b--析构函数b--析构函数a

2、拷贝构造函数

类同名、形参是类对象的引用

3、浅拷贝与深拷贝

默认构造函数只是对成员简单的赋值,不能为指针成员开辟空间,所以delete的时候会出错        浅拷贝

不仅仅可以进行数据拷贝,也可以分配内存空间        深拷贝

Circle::Circle(Circle &a)

{

    this->r = a.r;

    this->str = new char[strlen(a) + 1];

    strcpy(this->str,a.str);

}

4、友元函数(类)

为了访问类内的私有成员,在对应的类中声明友元函数

实现:void func(class a)(cout<<a.r;)

友元函数(类)不属于这个类,所以不能使用this指针,也不能被继承

5、构造函数赋值和初始化列表

初始化列表的方式更有效率

const修饰的成员必须初始化,也只能在列表初始化

一些自定义类型只能在列表初始化

对于一般内置类型(char int),两种区别不大

6、static成员变量必须初始化,并且要在类外

7、const对象(函数)只能访问const成员函数(变量)

8、类的二义性:A(基类),B、C是A的派生类,D是B、c的派生类,则A的成员在D中存在歧义
解决方案:使用虚基类,即B、C继承A时 bc加上virtual,这样派生类和基类就只维护一个基类对象 ,避免多次拷贝,出现歧义

9、多态:同样的方法被不同的对象执行会有不同的结果

猜你喜欢

转载自blog.csdn.net/zhao3132453/article/details/80866876