C++ storage allocation + Dynamic memory allocation + setting limits + initializer list (1)
2024-10-10 02:03:53
1. 对象的空间在括号开始就已经分配,但是构造在定义对象的时候才会实现,若跳过(譬如goto),到括号结束析构会发生错误,编译会通不过。
2.初始化
1 struct X { int i ; float f; char c;};
2
3 - X x1 = { 1,2.2,'c'};
4 X x2[3] = { {1,1.1,'a'},{2,2.2,'b'} };
5
6
7 struct Y {float f; int i; Y(int a);} ;
8
9 Y y1[] = {Y(1),Y(2),Y(3)};
3. default constructor == 无参数构造函数
Y y2[2] = {Y(4);} //it is wrong
4. new / delete
new : 分配空间+调用构造函数
delete(delete[]): 先析构,后回收空间
int *psome = new int [10]; delete [] psome; //不能失去[]
不要用delete去free不是new的空间
不要对同一个内存空间delete两次
当用new[]时,必须用delete[]
new不带[],delete也不带
对一个空指针delete是安全的(nothing will happen):不确定是否用new时使用
没delete。内存泄漏。
int *p = new int;
int *a = new int[10];
Student *q = new Student();
Student *r = new Student[10]; delete p; //p的地址与大小
a++;delete[] a; //运行错误,找不到new时a的地址
delete q; //回收Student
delete r; //空间收回,析构只做了一个
delete[] r; //析构所有对象
仅在编译时刻
--public:公用的
--private:自己--类的成员函数,同类的两个对象可以互相访问私有变量。
--protected:
Friend: 别的类,别的类里面的函数。
struct X; //前项声明 struct Y{
void f(X*);
}; struct X{
private:
int i;
public:
void initialize();
friend void g(X*,int); //Global friend
friend void Y::f(X*); //Struct member friend
friend void Z; //Entire struct is a friend
friend void h();
};
class vs. struct
class 缺省的是private
struct 缺省的是public
首选class
struct A{
private:
int i;
public:
A:i(0){}
} //与放在里面相比,实现赋值的顺序会早于构造函数被执行
尽量用初始化不用赋值
最新文章
- AngularJS Best Practices: ngRoute
- (转) Eclipse连接MySQL数据库(傻瓜篇)
- POJ 1456 Supermarket 区间问题并查集||贪心
- Dictionary中的结构体转出来
- 经典 socket通讯 -- 已验证
- HDU 2042 不容易系列之二 [补6.24] 分类: ACM 2015-06-26 20:40 9人阅读 评论(0) 收藏
- HDU-4628 Pieces 搜索 | DP
- 织梦 {dede:list}列表按多种排序显示
- AppWidget应用(一)---创建一个appWidget
- 9款超酷的jQuery/CSS3插件
- android IllegalStateException
- leetCode Min Stack解决共享
- Thinking in C++: 静态指针与指向静态类型的指针
- Postgresql中的explain
- kickstart无人值守
- JavaScript正则表达式函数总结
- 自动化测试 接口自动化及UI自动化测试平台设计演示
- 搭建ubuntu14.04服务器必备环境
- array_walk 与 array_map的 区别
- Oracle redo/undo 原理理解
热门文章
- Python练习题 001:4个数字求不重复的3位数
- 编写一个Open Live Writer的VSCode代码插件
- 达梦数据库_DM8配置实时主备
- 一道web入门题
- vue 下载jquery 下载layui-layer 下载vue-router
- 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir
- 多测师_测试理轮_002(v模型和H模型)
- Nuxt+Vue聊天室|nuxt仿微信App界面|nuxt.js聊天实例
- c语言版去除源代码注释
- 基于python实现二叉树的遍历