C++ Final Test

本文详细介绍了C++中的基本概念,包括不同类型的初始化,构造函数(默认构造函数、冒号构造函数和拷贝构造函数),析构函数,以及多态(包括静态多态和动态多态)、友元和静态数据成员的特点。此外,还讨论了C++中的一些限制和注意事项,如虚函数的使用规则和静态数据成员的初始化问题。
摘要由CSDN通过智能技术生成

C++ Final Test

bool 类型

初始化string对象的方法:

string s1; s1为空串 string s2(“ABC”)

string s3(s2) 将s3初始化为s2的一个副本 string s4(n, ‘c’) 将s4初始化为字符’c’的n个副本

s.empty() 若s为空串,则返回true,否则返回false

s.size() s1=s2 v1==v2 v1!=v2 string可以直接判断是否相等

复制初始化 int x=1024; 直接初始化 int x(1024);

递归函数无法使用内联方式。

int *arr=new int[10]; delete [ ]arr;

当指针是指的一连串的地址时,可以使用[ ]数组的类似访问方法去访问。

int main(){
 	Dog *p=new Dog[5];
 	for (int i=0;i<5;i++){
 		p[i]->age=1;
 		p[i]->speak();
 	}
 	delete p;
	p = NULL;
 	return 0;
}

在建立对象时不必给出实参的构造函数,称为默认构造函数。

无参构造函数属于默认构造函数。一个类只能有一个默认构造函数。

冒号构造函数法:初始化列表先于构造函数执行,初始化列表只能用于构造函数。

直接赋值算调用拷贝构造函数。

Student(const Student &stu){ }//这种方法是最规范的
Line *p=new Line();//一个指向类的说明方法
m_pCoorA = new Coordinate(1,3);//在指针指向的同时初始化生成

如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数。

析构函数不能被重载。仅含有纯虚函数的类叫做接口类

多态中存在的问题:内存泄露 解决:虚析构函数

四大限制:• 普通函数不能是虚函数• 静态成员函数不能是虚函数• 内联函数不能是虚函数• 构造函数不能是虚函数

静态多态(早绑定) 动态多态(晚绑定)

class Worker : virtual public Person{
}; 
class Farmer : virtual public Person{
   	soldier.play();
    soldier.Person::play();//同名时可以这样区分
};
class MigrantWorker : public Worker,public Farmer{
};//注意虚继承的virtual的位置不要写错了就可以了。
void changeX() const;//常成员函数

class Circle;//这种友元类在后面,所以要提前声明一下。
class Coordinate
{
friend Circle;
public:
Coordinate(int x,int y);
private:
int m_iX;
int m_iY;
};

int Tank::s_iCount=0;//静态数据成员在类里面声明,在类外面定义。

分清楚多继承与多重继承。

友元关系不可传递、单向性、声明的形式及数量不受限制、只是封装的补充。

静态数据成员必须单独初始化。

静态成员函数不能调用非静态成员函数和非静态数据成员。

静态数据成员只有一份,且不依赖对象而存在。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值