C++ 构造函数和New运算符
2016-05-16 13:24
471 查看
算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。
系统会自动在栈中为每个变量开辟内存空间,以保证数值被合理地存放。
由于栈是系统自动分配的,因此速度较快,但是缺点是可存放的空间小,2M。
使用new运算符在堆中创建一个对戏那个时,也会自动调用构造函数来实例化该对象的数据成员。
/*使用NEW运算符在堆中开辟一块新空间,例程如下:
#include <iostream>
using std::cout;
class A
{
public:
A(){cout<<"构造函数执行完毕\n";};
};
int main()
{
A *p; //声明一个属于A类的指针p
p=new A; //使用new运算符创建一块堆中空间,它的大小由类A的数据成员的类型和数量
//来定,由于堆在内存中都是匿名的,因此这里没有为它命名,只是将它的内存
//地址赋给了指针p
return 0;
}
*/
//使用new运算符创建并实例化一个对象,例程如下:
#include <iostream>
using std::cout;
class A
{
public:
A(int a,int b){i=a;j=b;cout<<"构造函数执行完毕\n";};
void print(){cout<<i*j<<"\n";}
void set(int a,int b){i=a;j=b;}
private:
int i,j;
};
int main()
{
A *p=new A(1,2); //在创建一个对象的同时实例化它的数据成员
p->print(); //输出结果
p->set(7,8); //利用成员函数访问该对象的数据成员并赋值
p->print(); //输出结果
return 0;
}
使用new运算符建立一个类的对象时,比如说类A的对象,new首先分配足以保证该类的一个对象所需要的内存,然后自动调用
构造函数来初始化这块内存,再返回这个对象的地址。
系统会自动在栈中为每个变量开辟内存空间,以保证数值被合理地存放。
由于栈是系统自动分配的,因此速度较快,但是缺点是可存放的空间小,2M。
使用new运算符在堆中创建一个对戏那个时,也会自动调用构造函数来实例化该对象的数据成员。
/*使用NEW运算符在堆中开辟一块新空间,例程如下:
#include <iostream>
using std::cout;
class A
{
public:
A(){cout<<"构造函数执行完毕\n";};
};
int main()
{
A *p; //声明一个属于A类的指针p
p=new A; //使用new运算符创建一块堆中空间,它的大小由类A的数据成员的类型和数量
//来定,由于堆在内存中都是匿名的,因此这里没有为它命名,只是将它的内存
//地址赋给了指针p
return 0;
}
*/
//使用new运算符创建并实例化一个对象,例程如下:
#include <iostream>
using std::cout;
class A
{
public:
A(int a,int b){i=a;j=b;cout<<"构造函数执行完毕\n";};
void print(){cout<<i*j<<"\n";}
void set(int a,int b){i=a;j=b;}
private:
int i,j;
};
int main()
{
A *p=new A(1,2); //在创建一个对象的同时实例化它的数据成员
p->print(); //输出结果
p->set(7,8); //利用成员函数访问该对象的数据成员并赋值
p->print(); //输出结果
return 0;
}
使用new运算符建立一个类的对象时,比如说类A的对象,new首先分配足以保证该类的一个对象所需要的内存,然后自动调用
构造函数来初始化这块内存,再返回这个对象的地址。
相关文章推荐
- C++第9周项目 数组和指针 【项目3-人数不定的工资类】(复习新版)
- C++第9周项目 数组和指针 【项目2-我的数组类】(复习新版)
- C++第9周项目 动态存储分配及深复制 【项目1-深复制体验】(复习新版)
- C++ 从文件中提取序列数据
- C++第8周项目 数组和指针 【项目4-游戏中的角色类增强版】 (复习新版)
- 自己写的哈夫曼树代码,有兴趣的朋友可以看看(C++)
- C++第8周项目 数组和指针 【项目2-用对象数组操作长方柱类】(复习新版)
- C++第8周项目 数组和指针 【项目1 - 数组作数据成员】(复习新版)
- 关于C++输出中文乱码的解决方案
- 【C语言】终端一检测到输入后直接输出,不需要按下enter键
- 【C语言】获取终端的显示区的大小
- 【C语言】统计字符数
- C++作业5
- C++的回调机制
- Sublime Text 3 搭建C++开发环境与插件
- 设计模式之简单工厂模式(C++实现)
- 宏函数
- 浅析C/C++中动态链接库的创建和调用
- C# 调用C++结构体
- 汉诺塔-递归