新手初学C++:带有指针型数据成员的类
2011-03-15 15:48
232 查看
作者:finallyly 出处:博客园(注意:转载请注明作者和出处)
最近打算写一个算法类,算法类中要有一个指针型数据成员,然而该指针型数据成员却不能在构造函数只能够分配堆内存(因为此时我们还不确定数组的维度),只有调用了某个函数之后,方知道动态数组维度,考虑不在类的构造函数中调用确定数组维度的那个函数做如下设想:
在类的其他其他成员函数中为该指针成员分配堆内存,析构函数中释放该数据成员。问了几个同学和网友后做如下设计:
为指针数据成员分配堆内存
void stringprocess::test()
{
indexes=new int[5];
}
主函数中测试调用:
int _tmain(int argc, _TCHAR* argv[])
{
stringprocess p;
p.test();
cout<<"finish"<<endl;
int f;
cin>>f;
}
输出结果:
如果主函数中不调用p的test函数则运行结果如下:
鉴于一般的C++入门课本仅提到“在构造函数中动态分配堆内存,在析构函数中释放”,以上内容仅供C++初学者参考之,避免造成思维固化。
最近打算写一个算法类,算法类中要有一个指针型数据成员,然而该指针型数据成员却不能在构造函数只能够分配堆内存(因为此时我们还不确定数组的维度),只有调用了某个函数之后,方知道动态数组维度,考虑不在类的构造函数中调用确定数组维度的那个函数做如下设想:
在类的其他其他成员函数中为该指针成员分配堆内存,析构函数中释放该数据成员。问了几个同学和网友后做如下设计:
为指针数据成员分配堆内存
void stringprocess::test()
{
indexes=new int[5];
}
主函数中测试调用:
int _tmain(int argc, _TCHAR* argv[])
{
stringprocess p;
p.test();
cout<<"finish"<<endl;
int f;
cin>>f;
}
输出结果:
如果主函数中不调用p的test函数则运行结果如下:
鉴于一般的C++入门课本仅提到“在构造函数中动态分配堆内存,在析构函数中释放”,以上内容仅供C++初学者参考之,避免造成思维固化。
相关文章推荐
- C++ 静态数据成员 成员函数 静态变量 全局变量(1)
- C++中静态数据成员以及静态成员函数
- C++回顾之类数据成员的初始化
- C++学习笔记17,构造函数体内初始化数据成员与构造函数初始化器的区别(一)
- C++中类的数据成员的安全隐患
- C++静态成员(静态数据成员和静态成员函数)
- C++项目——对象作为数据成员
- [转载]C++中静态成员数据与静态成员函数小结
- C++中static类数据成员
- c++ 静态数据成员和静态成员函数
- C++中的数据共享和成员特性
- C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
- C++中各种数据成员及成员函数的定义及使用
- 《C++第九周实验报告4-1》---建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数, //完成矩阵的输入、输出、加、减、相等判断等操作。
- [c++基础]运算符重载,共有数据保护,静态成员
- C++ 类静态数据成员除了要声明外,还要在类实现文件中进行定义。
- 关于C++ 类数据成员初始化的一点总结【为什么类定义中不能初始化成员变量】
- C++静态数据成员定义及应用浅谈
- 关于c++的静态数据(函数)成员的理解
- C++第4周项目5 - 数组作数据成员(扩展2、3引入文件)