
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
“这个世界都是由代码组成的。”这是程序员的格言,随着互联网的快速发展,世界已经进入了电子信息时代,而程序员也成为了新时代产业下所产生的火热职业,现在大学都会开放一门变成的基础课,C语言。这对于大学生逻辑思维具有很棒的好处,同样对于要入门编程大海的未来的程序员,也是一个很棒的入门机会,今天烟台C#培训小编就为大家带来,C语言程序设计基础,希望大家喜欢!
将动态数组封装成类(可用vector代替该功能)
更加简洁,便于管理;
可以在访问数组元素前检查下标是否越界
class ArrayOfPoints { //动态数组类
public:
ArrayOfPoints(int size) : size(size){ //构造函数
points = new Point[size]; //创建动态数组
}
~ArrayOfPoints() { //析构函数
cout << "Deleting..." << endl;
delete[] points;
}
Point& element(int index) { //返回引用可以用来操作封装数组对象内部的数组元素,返回值则只是一份副本
assert(index >= 0 && index < size); //检查是否越界
return points[index];
}
private:
Point *points; //指向动态数组首地址
int size; //数组大小
}
int count;
cout << "Please enter the count of points: ";
cin >> count;
ArrayOfPoints points(count); //创建数组对象
points.element(0).move(5, 0); //对象.move()
points.element(1).move(15, 20);
智能指针(C++11)
- unique_ptr :不允许多个指针共享资源,指针地址不能被复制,但可以用标准库中的move函数转移到其他指针中,转移后原指针被清空.
- shared_ptr :多个指针共享资源
- weak_ptr :可复制shared_ptr,但其构造或者释放对资源不产生影响
- 仅作了解;